From 7ec9eb770e326ab1810844ac086274887021af28 Mon Sep 17 00:00:00 2001 From: YWD Date: Mon, 13 Jan 2025 10:25:12 +0800 Subject: [PATCH 1/8] =?UTF-8?q?usbhitrace=E6=89=93=E7=82=B9=E9=9C=80?= =?UTF-8?q?=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: YWD --- interfaces/kits/js/napi/BUILD.gn | 2 ++ interfaces/kits/js/napi/src/usb_info.cpp | 31 ++++++++++++++++++------ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/interfaces/kits/js/napi/BUILD.gn b/interfaces/kits/js/napi/BUILD.gn index 097d5eca..3325210b 100644 --- a/interfaces/kits/js/napi/BUILD.gn +++ b/interfaces/kits/js/napi/BUILD.gn @@ -17,6 +17,7 @@ config("usbnapi_private_config") { include_dirs = [ "${usb_manager_path}/interfaces/kits/js/napi/include", "${usb_manager_path}/interfaces/innerkits/native/include", + "${usb_manager_path}/../../hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter", ] } @@ -69,6 +70,7 @@ ohos_shared_library("usbmanager") { "hilog:libhilog", "ipc:ipc_single", "napi:ace_napi", + "hitrace:hitrace_meter", ] relative_install_dir = "module" diff --git a/interfaces/kits/js/napi/src/usb_info.cpp b/interfaces/kits/js/napi/src/usb_info.cpp index 1f53e9ac..47d2f9b1 100644 --- a/interfaces/kits/js/napi/src/usb_info.cpp +++ b/interfaces/kits/js/napi/src/usb_info.cpp @@ -39,6 +39,7 @@ #include "usb_napi_errors.h" #include "usb_srv_client.h" #include "usb_accessory.h" +#include "hitrace_meter.h" using namespace OHOS; using namespace OHOS::USB; using namespace OHOS::HDI::Usb::V1_0; @@ -1569,6 +1570,7 @@ static std::tuple GetControlTran static napi_value PipeControlTransfer(napi_env env, napi_callback_info info) { + HITRACE_METER_NAME(HITRACE_TAG_USB, "NAPI:PipeControlTransfer"); auto [res, pipe, controlParam, timeOut] = GetControlTransferParam(env, info); if (!res) { USB_HILOGE(MODULE_JS_NAPI, "GetControlTransferParam failed."); @@ -1596,8 +1598,9 @@ static napi_value PipeControlTransfer(napi_env env, napi_callback_info info) delete asyncContext; return nullptr; } - + StartTrace(HITRACE_TAG_USB, "NAPI:memcpy_s"); errno_t ret = memcpy_s(nativeArrayBuffer, controlParam.dataLength, controlParam.data, controlParam.dataLength); + FinishTrace(HITRACE_TAG_USB); if (ret != EOK) { USB_HILOGE(MODULE_JS_NAPI, "memcpy_s failed"); delete asyncContext; @@ -1616,9 +1619,10 @@ static napi_value PipeControlTransfer(napi_env env, napi_callback_info info) napi_value resource = nullptr; napi_create_string_utf8(env, "PipeControlTransfer", NAPI_AUTO_LENGTH, &resource); - + StartTrace(HITRACE_TAG_USB, "NAPI:napi_create_async_work"); napi_create_async_work(env, nullptr, resource, g_controlTransferExecute, g_controlTransferComplete, reinterpret_cast(asyncContext), &asyncContext->work); + FinishTrace(HITRACE_TAG_USB); napi_queue_async_work(env, asyncContext->work); return result; @@ -1729,6 +1733,7 @@ static std::tuple GetUsbContr static napi_value PipeUsbControlTransfer(napi_env env, napi_callback_info info) { + HITRACE_METER_NAME(HITRACE_TAG_USB, "NAPI:PipeUsbControlTransfer"); auto [res, pipe, controlParam, timeOut] = GetUsbControlTransferParam(env, info); if (!res) { USB_HILOGE(MODULE_JS_NAPI, "GetUsbControlTransferParam failed."); @@ -1756,8 +1761,9 @@ static napi_value PipeUsbControlTransfer(napi_env env, napi_callback_info info) delete asyncContext; return nullptr; } - + StartTrace(HITRACE_TAG_USB, "NAPI:memcpy_s"); errno_t ret = memcpy_s(nativeArrayBuffer, controlParam.dataLength, controlParam.data, controlParam.dataLength); + FinishTrace(HITRACE_TAG_USB); if (ret != EOK) { USB_HILOGE(MODULE_JS_NAPI, "memcpy_s failed"); delete asyncContext; @@ -1776,9 +1782,10 @@ static napi_value PipeUsbControlTransfer(napi_env env, napi_callback_info info) napi_value resource = nullptr; napi_create_string_utf8(env, "PipeUsbControlTransfer", NAPI_AUTO_LENGTH, &resource); - + StartTrace(HITRACE_TAG_USB, "NAPI:napi_create_async_work"); napi_create_async_work(env, nullptr, resource, g_usbControlTransferExecute, g_usbControlTransferComplete, reinterpret_cast(asyncContext), &asyncContext->work); + FinishTrace(HITRACE_TAG_USB); napi_queue_async_work(env, asyncContext->work); return result; @@ -1907,6 +1914,7 @@ static bool GetBulkTransferParams(napi_env env, napi_callback_info info, USBBulk static napi_value PipeBulkTransfer(napi_env env, napi_callback_info info) { + HITRACE_METER_NAME(HITRACE_TAG_USB, "NAPI:PipeBulkTransfer"); auto asyncContext = new (std::nothrow) USBBulkTransferAsyncContext(); if (asyncContext == nullptr) { USB_HILOGE(MODULE_JS_NAPI, "Create USBBulkTransferAsyncContext failed."); @@ -1930,8 +1938,10 @@ static napi_value PipeBulkTransfer(napi_env env, napi_callback_info info) napi_value resource = nullptr; napi_create_string_utf8(env, "PipeBulkTransfer", NAPI_AUTO_LENGTH, &resource); + StartTrace(HITRACE_TAG_USB, "NAPI:napi_create_async_work"); napi_status status = napi_create_async_work(env, nullptr, resource, g_bulkTransferExecute, g_bulkTransferComplete, reinterpret_cast(asyncContext), &asyncContext->work); + FinishTrace(HITRACE_TAG_USB); if (status != napi_ok) { USB_HILOGE(MODULE_JS_NAPI, "create async work failed"); return result; @@ -2164,8 +2174,7 @@ static void GetUSBTransferInfo(USBTransferInfo &obj, USBTransferAsyncContext *as static napi_value UsbSubmitTransfer(napi_env env, napi_callback_info info) { - auto timesUse = std::make_shared(); - timesUse->beginTime = std::chrono::steady_clock::now(); + HITRACE_METER_NAME(HITRACE_TAG_USB, "NAPI:UsbSubmitTransfer"); auto asyncContext = new (std::nothrow) USBTransferAsyncContext(); if (asyncContext == nullptr) { return nullptr; @@ -2180,7 +2189,9 @@ static napi_value UsbSubmitTransfer(napi_env env, napi_callback_info info) asyncContext->env = env; HDI::Usb::V1_2::USBTransferInfo obj; GetUSBTransferInfo(obj, asyncContext); + StartTrace(HITRACE_TAG_USB, "NAPI:Ashmem::CreateAshmem"); asyncContext->ashmem = Ashmem::CreateAshmem(asyncContext->name.c_str(), asyncContext->length); + FinishTrace(HITRACE_TAG_USB); if (asyncContext->ashmem == nullptr) { USB_HILOGE(MODULE_JS_NAPI, "Ashmem::CreateAshmem failed"); return nullptr; @@ -2189,7 +2200,9 @@ static napi_value UsbSubmitTransfer(napi_env env, napi_callback_info info) std::vector bufferData(asyncContext->buffer, asyncContext->buffer + asyncContext->bufferLength); obj.length = bufferData.size(); asyncContext->ashmem->MapReadAndWriteAshmem(); + StartTrace(HITRACE_TAG_USB, "NAPI:WriteToAshmem"); bool isWrite = asyncContext->ashmem->WriteToAshmem(asyncContext->buffer, bufferData.size(), 0); + FinishTrace(HITRACE_TAG_USB); if (!isWrite) { asyncContext->ashmem->CloseAshmem(); USB_HILOGE(MODULE_JS_NAPI, "napi UsbSubmitTransfer Failed to UsbSubmitTransfer to ashmem."); @@ -2200,7 +2213,9 @@ static napi_value UsbSubmitTransfer(napi_env env, napi_callback_info info) USBTransferAsyncContext *asyncContext = reinterpret_cast(userData); return JsCallBack(asyncContext, info, isoInfo); }; + StartTrace(HITRACE_TAG_USB, "NAPI:UsbSubmitTransfer"); int32_t ret = asyncContext->pipe.UsbSubmitTransfer(obj, func, asyncContext->ashmem); + FinishTrace(HITRACE_TAG_USB); if (ret != napi_ok) { napi_create_int32(env, ret, &result); asyncContext->ashmem->CloseAshmem(); @@ -2259,6 +2274,7 @@ static bool GetCancelParamsFromJsObj(const napi_env &env, const napi_callback_in static napi_value UsbCancelTransfer(napi_env env, napi_callback_info info) { + HITRACE_METER_NAME(HITRACE_TAG_USB, "NAPI:UsbCancelTransfer"); auto asyncContext = std::make_shared(); if (asyncContext == nullptr) { USB_HILOGE(MODULE_JS_NAPI, "Create USBTransferAsyncContext failed."); @@ -2271,8 +2287,9 @@ static napi_value UsbCancelTransfer(napi_env env, napi_callback_info info) napi_create_int32(env, USB_SUBMIT_TRANSFER_GET_PARAMS_ERROR, &result); return result; } - + StartTrace(HITRACE_TAG_USB, "NAPI:pipe.UsbCancelTransfer"); int32_t ret = asyncContext->pipe.UsbCancelTransfer(asyncContext->endpoint); + FinishTrace(HITRACE_TAG_USB); if (ret != napi_ok) { napi_create_int32(env, USB_SUBMIT_TRANSFER_IO_ERROR, &result); return result; -- Gitee From 683727f6a075e2c0e372a5bc2ef630cdbc6236ca Mon Sep 17 00:00:00 2001 From: YWD Date: Mon, 13 Jan 2025 10:48:15 +0800 Subject: [PATCH 2/8] =?UTF-8?q?usb=20hitrace=E6=89=93=E7=82=B9=E9=9C=80?= =?UTF-8?q?=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: YWD --- interfaces/kits/js/napi/src/usb_info.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/interfaces/kits/js/napi/src/usb_info.cpp b/interfaces/kits/js/napi/src/usb_info.cpp index 47d2f9b1..b8984972 100644 --- a/interfaces/kits/js/napi/src/usb_info.cpp +++ b/interfaces/kits/js/napi/src/usb_info.cpp @@ -2175,6 +2175,8 @@ static void GetUSBTransferInfo(USBTransferInfo &obj, USBTransferAsyncContext *as static napi_value UsbSubmitTransfer(napi_env env, napi_callback_info info) { HITRACE_METER_NAME(HITRACE_TAG_USB, "NAPI:UsbSubmitTransfer"); + auto timesUse = std::make_shared(); + timesUse->beginTime = std::chrono::steady_clock::now(); auto asyncContext = new (std::nothrow) USBTransferAsyncContext(); if (asyncContext == nullptr) { return nullptr; -- Gitee From 7c264da450a274ae45d122ece4d603a1ba8a5194 Mon Sep 17 00:00:00 2001 From: YWD Date: Mon, 13 Jan 2025 11:47:41 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: YWD --- interfaces/kits/js/napi/src/usb_info.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interfaces/kits/js/napi/src/usb_info.cpp b/interfaces/kits/js/napi/src/usb_info.cpp index b8984972..a4d39e8b 100644 --- a/interfaces/kits/js/napi/src/usb_info.cpp +++ b/interfaces/kits/js/napi/src/usb_info.cpp @@ -2175,7 +2175,7 @@ static void GetUSBTransferInfo(USBTransferInfo &obj, USBTransferAsyncContext *as static napi_value UsbSubmitTransfer(napi_env env, napi_callback_info info) { HITRACE_METER_NAME(HITRACE_TAG_USB, "NAPI:UsbSubmitTransfer"); - auto timesUse = std::make_shared(); + auto timesUse = std::make_shared(); timesUse->beginTime = std::chrono::steady_clock::now(); auto asyncContext = new (std::nothrow) USBTransferAsyncContext(); if (asyncContext == nullptr) { -- Gitee From f7a06fa7bee1da73c3af7f2cc14d1fa01ee871a8 Mon Sep 17 00:00:00 2001 From: YWD Date: Mon, 13 Jan 2025 15:05:51 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: YWD --- interfaces/kits/js/napi/BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interfaces/kits/js/napi/BUILD.gn b/interfaces/kits/js/napi/BUILD.gn index 3325210b..0231736c 100644 --- a/interfaces/kits/js/napi/BUILD.gn +++ b/interfaces/kits/js/napi/BUILD.gn @@ -68,9 +68,9 @@ ohos_shared_library("usbmanager") { "c_utils:utils", "drivers_interface_usb:usb_idl_headers_1.2", "hilog:libhilog", + "hitrace:hitrace_meter", "ipc:ipc_single", "napi:ace_napi", - "hitrace:hitrace_meter", ] relative_install_dir = "module" -- Gitee From 110bc7a7af36175dcf99b093d61ac54d64043712 Mon Sep 17 00:00:00 2001 From: YWD Date: Mon, 13 Jan 2025 21:19:16 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: YWD --- interfaces/kits/js/napi/BUILD.gn | 1 - 1 file changed, 1 deletion(-) diff --git a/interfaces/kits/js/napi/BUILD.gn b/interfaces/kits/js/napi/BUILD.gn index 0231736c..f20e03ea 100644 --- a/interfaces/kits/js/napi/BUILD.gn +++ b/interfaces/kits/js/napi/BUILD.gn @@ -17,7 +17,6 @@ config("usbnapi_private_config") { include_dirs = [ "${usb_manager_path}/interfaces/kits/js/napi/include", "${usb_manager_path}/interfaces/innerkits/native/include", - "${usb_manager_path}/../../hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter", ] } -- Gitee From b6201db82fcab201121f808860a79ecd2c79df04 Mon Sep 17 00:00:00 2001 From: YWD Date: Fri, 14 Feb 2025 10:06:43 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=86=B2=E7=AA=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: YWD --- interfaces/kits/js/napi/src/usb_info.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/interfaces/kits/js/napi/src/usb_info.cpp b/interfaces/kits/js/napi/src/usb_info.cpp index f6dffff4..491a0472 100644 --- a/interfaces/kits/js/napi/src/usb_info.cpp +++ b/interfaces/kits/js/napi/src/usb_info.cpp @@ -2289,14 +2289,13 @@ static napi_value UsbSubmitTransfer(napi_env env, napi_callback_info info) obj.length = static_cast(bufferData.size()); asyncContext->ashmem->MapReadAndWriteAshmem(); StartTrace(HITRACE_TAG_USB, "NAPI:WriteToAshmem"); - bool isWrite = asyncContext->ashmem->WriteToAshmem(asyncContext->buffer, bufferData.size(), 0); - FinishTrace(HITRACE_TAG_USB); - if (!isWrite) { if (!asyncContext->ashmem->WriteToAshmem(asyncContext->buffer, bufferData.size(), 0)) { + FinishTrace(HITRACE_TAG_USB); asyncContext->ashmem->CloseAshmem(); USB_HILOGE(MODULE_JS_NAPI, "napi UsbSubmitTransfer Failed to UsbSubmitTransfer to ashmem."); return nullptr; } + FinishTrace(HITRACE_TAG_USB); } static auto func = [] (const TransferCallbackInfo &info, const std::vector &isoInfo, uint64_t userData) -> void { -- Gitee From a9ace4cb5dddc556867d61f514ada9a57ec125bf Mon Sep 17 00:00:00 2001 From: YWD Date: Fri, 14 Feb 2025 10:51:29 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: YWD --- interfaces/kits/js/napi/src/usb_info.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interfaces/kits/js/napi/src/usb_info.cpp b/interfaces/kits/js/napi/src/usb_info.cpp index 491a0472..1d023f44 100644 --- a/interfaces/kits/js/napi/src/usb_info.cpp +++ b/interfaces/kits/js/napi/src/usb_info.cpp @@ -2295,7 +2295,7 @@ static napi_value UsbSubmitTransfer(napi_env env, napi_callback_info info) USB_HILOGE(MODULE_JS_NAPI, "napi UsbSubmitTransfer Failed to UsbSubmitTransfer to ashmem."); return nullptr; } - FinishTrace(HITRACE_TAG_USB); + FinishTrace(HITRACE_TAG_USB); } static auto func = [] (const TransferCallbackInfo &info, const std::vector &isoInfo, uint64_t userData) -> void { -- Gitee From 8d5a765e54e662b0b716e3771f14fa9ba2844472 Mon Sep 17 00:00:00 2001 From: YWD Date: Fri, 14 Feb 2025 11:01:57 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: YWD --- interfaces/kits/js/napi/src/usb_info.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interfaces/kits/js/napi/src/usb_info.cpp b/interfaces/kits/js/napi/src/usb_info.cpp index 1d023f44..f759b6c6 100644 --- a/interfaces/kits/js/napi/src/usb_info.cpp +++ b/interfaces/kits/js/napi/src/usb_info.cpp @@ -2290,7 +2290,7 @@ static napi_value UsbSubmitTransfer(napi_env env, napi_callback_info info) asyncContext->ashmem->MapReadAndWriteAshmem(); StartTrace(HITRACE_TAG_USB, "NAPI:WriteToAshmem"); if (!asyncContext->ashmem->WriteToAshmem(asyncContext->buffer, bufferData.size(), 0)) { - FinishTrace(HITRACE_TAG_USB); + FinishTrace(HITRACE_TAG_USB); asyncContext->ashmem->CloseAshmem(); USB_HILOGE(MODULE_JS_NAPI, "napi UsbSubmitTransfer Failed to UsbSubmitTransfer to ashmem."); return nullptr; -- Gitee