From: Dongju Chae Date: Mon, 9 Aug 2021 05:01:37 +0000 (+0900) Subject: [Valgrind] Remove valgrind warnings. X-Git-Tag: submit/tizen/20220103.094045~41 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a68b76ddc537aab978480f3d5d1eb7523de3fc3e;p=platform%2Fadaptation%2Fnpu%2Ftrix-engine.git [Valgrind] Remove valgrind warnings. This patch removes valgrind warnings mostly related to value initialization. Signed-off-by: Dongju Chae --- diff --git a/src/core/ne-handler.cc b/src/core/ne-handler.cc index 44fd615..74521ad 100644 --- a/src/core/ne-handler.cc +++ b/src/core/ne-handler.cc @@ -341,7 +341,10 @@ HostHandler::createRequest (uint32_t model_id, int *req_id) { */ int HostHandler::removeRequest (int req_id) { - return device_->removeRequest (req_id); + int status = device_->removeRequest (req_id); + if (status == 0) + profiler_->removeRequest (req_id); + return status; } /** @@ -425,7 +428,19 @@ HostHandler::setRequestScheduler (int req_id, npu_scheduler sched, */ int HostHandler::submitRequest (int req_id) { - return device_->submitRequest (req_id); + uint32_t model_id; + int status = device_->getRequestModel (req_id, &model_id); + if (status != 0) + return status; + + Model *model = models_.find (model_id); + /* internal logic error */ + assert (model != nullptr); + + status = device_->submitRequest (req_id); + if (status == 0) + profiler_->appendRequest (req_id, model); + return status; } /** @@ -435,7 +450,19 @@ HostHandler::submitRequest (int req_id) { */ int HostHandler::submitRequestKernel (int req_id) { - return device_->submitRequestKernel (req_id); + uint32_t model_id; + int status = device_->getRequestModel (req_id, &model_id); + if (status != 0) + return status; + + Model *model = models_.find (model_id); + /* internal logic error */ + assert (model != nullptr); + + status = device_->submitRequestKernel (req_id); + if (status == 0) + profiler_->appendRequest (req_id, model); + return status; } /** @@ -1241,6 +1268,7 @@ TrinityVision2::removeRequest (int req_id) { } scheduler_->removeRequest (req); + return 0; } diff --git a/src/core/ne-host-input-service.cc b/src/core/ne-host-input-service.cc index b54e144..4020104 100644 --- a/src/core/ne-host-input-service.cc +++ b/src/core/ne-host-input-service.cc @@ -67,6 +67,15 @@ HostInputService::submit (const DriverAPI *api, const Request *req, outputCallba */ int HostInputService::remove (const DriverAPI *api, int id) { + if (api == nullptr || id < 0) { + logerr (TAG, "Invalid arguments\n"); + return -EINVAL; + } + +#ifdef ENABLE_EMUL + api->stop_target (id); +#endif + return ThreadPool::getInstance ().removeTask (id); } diff --git a/src/core/ne-profiler.cc b/src/core/ne-profiler.cc index 603284e..516afd0 100644 --- a/src/core/ne-profiler.cc +++ b/src/core/ne-profiler.cc @@ -25,6 +25,11 @@ ModelProfiler::appendRequest (int req_id, const Model *model) { return profile_map_.insert (req_id, data); } +int +ModelProfiler::removeRequest (int req_id) { + return profile_map_.remove (req_id); +} + int ModelProfiler::getProfile (int req_id, const npu_profile_opt &opt, npu_profile *profile) { ProfileData *data = profile_map_.find (req_id); diff --git a/src/core/ne-profiler.h b/src/core/ne-profiler.h index 548a9e9..d5c6d2b 100644 --- a/src/core/ne-profiler.h +++ b/src/core/ne-profiler.h @@ -34,8 +34,9 @@ class ModelProfiler { ~ModelProfiler (); int appendRequest (int req_id, const Model *model); - int getProfile (int req_id, const npu_profile_opt &opt, npu_profile *profile); + int removeRequest (int req_id); + int getProfile (int req_id, const npu_profile_opt &opt, npu_profile *profile); void manipulateProfile (HWmem *extended, npu_profile *profile); private: diff --git a/tests/unittests/ne_core_comm_test.cc b/tests/unittests/ne_core_comm_test.cc index fd553a5..4ec2e3d 100644 --- a/tests/unittests/ne_core_comm_test.cc +++ b/tests/unittests/ne_core_comm_test.cc @@ -44,7 +44,9 @@ TEST (ne_core_comm_test, extract_buffer) { size_t size = 4096; char *data = new char[size]; - generic_buffer buffer; + memset (data, '\x00', size); + generic_buffer buffer = {0}; + buffer.type = BUFFER_MAPPED; buffer.addr = new char[size]; buffer.size = size; @@ -74,7 +76,9 @@ TEST (ne_core_comm_test, extract_buffer_args_n) { size_t size = 4096; char *data = new char[size]; - generic_buffer buffer; + memset (data, '\x00', size); + generic_buffer buffer = {0}; + buffer.type = BUFFER_MAPPED; buffer.addr = new char[size]; buffer.size = size; @@ -100,7 +104,9 @@ TEST (ne_core_comm_test, extract_buffer_not_supported_n) { size_t size = 4096; char *data = new char[size]; - generic_buffer buffer; + memset (data, '\x00', size); + generic_buffer buffer = {0}; + buffer.size = size; /** not supported */ @@ -121,7 +127,9 @@ TEST (ne_core_comm_test, extract_buffer_file) { size_t size = 4096; char *data = new char[size]; - generic_buffer buffer; + memset (data, '\x00', size); + generic_buffer buffer = {0}; + buffer.type = BUFFER_FILE; buffer.filepath = "/tmp/test.bin"; buffer.size = size; @@ -152,7 +160,8 @@ TEST (ne_core_comm_test, extract_buffer_file_n) { size_t size = 4096; char *data = new char[size]; - generic_buffer buffer; + memset (data, '\x00', size); + generic_buffer buffer = {0}; /** need filepath */ buffer.type = BUFFER_FILE; @@ -176,7 +185,9 @@ TEST (ne_core_comm_test, insert_buffer) { size_t size = 4096; char *data = new char[size]; - generic_buffer buffer; + memset (data, '\x00', size); + generic_buffer buffer = {0}; + buffer.type = BUFFER_MAPPED; buffer.addr = new char[size]; buffer.size = size; @@ -206,7 +217,9 @@ TEST (ne_core_comm_test, insert_buffer_args_n) { size_t size = 4096; char *data = new char[size]; - generic_buffer buffer; + memset (data, '\x00', size); + generic_buffer buffer = {0}; + buffer.type = BUFFER_MAPPED; buffer.addr = new char[size]; buffer.size = size; @@ -232,7 +245,8 @@ TEST (ne_core_comm_test, insert_buffer_not_supported_n) { size_t size = 4096; char *data = new char[size]; - generic_buffer buffer; + memset (data, '\x00', size); + generic_buffer buffer = {0}; /** not supported */ buffer.type = BUFFER_FILE; diff --git a/tests/unittests/ne_core_data_test.cc b/tests/unittests/ne_core_data_test.cc index edc150c..02e442b 100644 --- a/tests/unittests/ne_core_data_test.cc +++ b/tests/unittests/ne_core_data_test.cc @@ -389,9 +389,9 @@ TEST (ne_core_data_test, dummy_quantize) { DATA_TYPE_FLOAT32, DATA_TYPE_FLOAT64}; uint32_t data_dims[] = {1, 1, 1, 1024}; - void *src_data = malloc (4096); + void *src_data = calloc (1, 4096); ASSERT_NE (src_data, nullptr); - void *dst_data = malloc (4096); + void *dst_data = calloc (1, 4096); if (dst_data == nullptr) { free (src_data); ASSERT_NE (dst_data, nullptr); diff --git a/tests/unittests/ne_core_handler_test.cc b/tests/unittests/ne_core_handler_test.cc index fc5b0a6..c7b41b9 100644 --- a/tests/unittests/ne_core_handler_test.cc +++ b/tests/unittests/ne_core_handler_test.cc @@ -87,7 +87,7 @@ TEST (ne_core_handler_test, device_instance_uninitilized_n) { void *addr = nullptr; Model *model; generic_buffer model_buf = {0}; - input_buffers input; + input_buffers input = {0}; EXPECT_EQ (triv2->allocMemory (4096, &addr), -EPERM); EXPECT_EQ (triv2->deallocMemory (0, 4096, addr), -EPERM); @@ -317,7 +317,7 @@ TEST (ne_core_handler_test, triv2_run) { ASSERT_EQ (device->setModel (&model_buf, &model), 0); /** prepare input buffers */ - input_buffers input_buf; + input_buffers input_buf = {0}; create_input_buffers (input_buf); npu_input_opmode opmode = NPUINPUT_HOST; @@ -361,7 +361,7 @@ TEST (ne_core_handler_test, triv2_run_invalid_args_n) { ASSERT_EQ (device->setModel (&model_buf, &model), 0); /** prepare input buffers */ - input_buffers input_buf; + input_buffers input_buf = {0}; create_input_buffers (input_buf); npu_input_opmode opmode = NPUINPUT_HOST; @@ -390,7 +390,7 @@ TEST (ne_core_handler_test, triv2_run_invalid_opmode_n) { ASSERT_EQ (device->setModel (&model_buf, &model), 0); /** prepare input buffers */ - input_buffers input_buf; + input_buffers input_buf = {0}; create_input_buffers (input_buf); /** TRIV2 only allows NPUINPUT_HOST */ @@ -419,7 +419,7 @@ TEST (ne_core_handler_test, triv2_stop) { ASSERT_EQ (device->setModel (&model_buf, &model), 0); /** prepare input buffers */ - input_buffers input_buf; + input_buffers input_buf = {0}; create_input_buffers (input_buf); npu_input_opmode opmode = NPUINPUT_HOST; @@ -830,7 +830,7 @@ TEST (ne_core_handler_test, handler_triv2_run_sync) { EXPECT_EQ (handler->registerModel (&model_buf, &modelid), 0); /** buffer */ - input_buffers input; + input_buffers input = {0}; input.num_buffers = 1; input.bufs[0].type = BUFFER_MAPPED; input.bufs[0].size = 4096; @@ -838,8 +838,7 @@ TEST (ne_core_handler_test, handler_triv2_run_sync) { EXPECT_EQ (handler->allocGenericBuffer (&input), 0); /** runModel (sync) from host handler */ - output_buffers output; - output.num_buffers = 0; + output_buffers output = {0}; npu_infer_mode mode = NPU_INFER_BLOCKING; EXPECT_GE (handler->runModel (modelid, mode, &input), 0); @@ -867,15 +866,14 @@ TEST (ne_core_handler_test, handler_triv2_run_model_n) { EXPECT_EQ (handler->registerModel (&model_buf, &modelid), 0); /** buffer */ - input_buffers input; + input_buffers input = {0}; input.num_buffers = 1; input.bufs[0].type = BUFFER_MAPPED; input.bufs[0].size = 4096; EXPECT_EQ (handler->allocGenericBuffer (&input), 0); - output_buffers output; - output.num_buffers = 0; + output_buffers output = {0}; /** TRIV2 always requires model and input buffers */ npu_infer_mode mode = NPU_INFER_BLOCKING; @@ -905,7 +903,7 @@ TEST (ne_core_handler_test, handler_triv2_run_async) { EXPECT_EQ (handler->registerModel (&model_buf, &modelid), 0); /** buffer */ - input_buffers input; + input_buffers input = {0}; input.num_buffers = 1; input.bufs[0].type = BUFFER_MAPPED; input.bufs[0].size = 4096; @@ -942,7 +940,7 @@ TEST (ne_core_handler_test, handler_triv2_run_async_n) { EXPECT_EQ (handler->registerModel (&model_buf, &modelid), 0); /** buffer */ - input_buffers input; + input_buffers input = {0}; input.num_buffers = 1; input.bufs[0].type = BUFFER_MAPPED; input.bufs[0].size = 4096; @@ -979,7 +977,7 @@ TEST (ne_core_handler_test, handler_triv2_get_memory_status) { EXPECT_EQ (free_total, 0); /** buffer */ - input_buffers input; + input_buffers input = {0}; input.num_buffers = 1; input.bufs[0].type = BUFFER_MAPPED; input.bufs[0].size = size; diff --git a/tests/unittests/ne_core_inputservice_test.cc b/tests/unittests/ne_core_inputservice_test.cc index 5e08f81..42c46d8 100644 --- a/tests/unittests/ne_core_inputservice_test.cc +++ b/tests/unittests/ne_core_inputservice_test.cc @@ -237,20 +237,26 @@ TEST (ne_core_inputservice_test, host_remove) { /** saturate requests up to the maximum (in thread pool) */ uint32_t num_threads = ThreadPool::getInstance ().getNumThreads (); + Request **requests = new Request *[num_threads + 1]; int req_id = 0; for (uint32_t i = 0; i < num_threads + 1; i++) { - std::unique_ptr req (new Request (7 + i)); + Request *req = new Request (7 + i); req->setOpmode (opmode); req->setModel (model.get ()); req->setInferData (new SegmentTable (new HWmemDevice)); req_id = req->getID (); - EXPECT_EQ (service.submit (api.get (), req.get (), callback), 0); + EXPECT_EQ (service.submit (api.get (), req, callback), 0); + + requests[i] = req; } /** remove un-resolved task */ - EXPECT_EQ (service.remove (nullptr, req_id), 0); + EXPECT_EQ (service.remove (api.get (), req_id), 0); wait_callbacks (num_called, num_threads, m, cv); + + for (uint32_t i = 0; i < num_threads + 1; i++) delete requests[i]; + delete[] requests; } /**