From ce575486aaaf689b0da4e42325f811b8cbffbffa Mon Sep 17 00:00:00 2001 From: Mythreya Date: Wed, 30 Jul 2025 01:07:09 +0000 Subject: [PATCH 1/2] Enable `MARKER_CORE_RANGE_API` in json-tool * Add perfetto output to json tool * misc formatting --- .../rocprofiler-sdk/tests/tools/json-tool.cpp | 106 ++++++++++++------ 1 file changed, 73 insertions(+), 33 deletions(-) diff --git a/projects/rocprofiler-sdk/tests/tools/json-tool.cpp b/projects/rocprofiler-sdk/tests/tools/json-tool.cpp index ed5cbf94525..233df01467b 100644 --- a/projects/rocprofiler-sdk/tests/tools/json-tool.cpp +++ b/projects/rocprofiler-sdk/tests/tools/json-tool.cpp @@ -1421,23 +1421,14 @@ tool_init(rocprofiler_client_finalize_t fini_func, void* tool_data) nullptr), "code object tracing service configure"); - ROCPROFILER_CALL( - rocprofiler_configure_callback_tracing_service(marker_api_callback_ctx, - ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API, - nullptr, - 0, - tool_tracing_callback, - nullptr), - "marker core api tracing service configure"); - - // ROCPROFILER_CALL(rocprofiler_configure_callback_tracing_service( - // marker_api_callback_ctx, - // ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_RANGE_API, - // nullptr, - // 0, - // tool_tracing_callback, - // nullptr), - // "marker core api tracing service configure"); + ROCPROFILER_CALL(rocprofiler_configure_callback_tracing_service( + marker_api_callback_ctx, + ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_RANGE_API, + nullptr, + 0, + tool_tracing_callback, + nullptr), + "marker core range api tracing service configure"); ROCPROFILER_CALL(rocprofiler_configure_callback_tracing_service( marker_api_callback_ctx, @@ -1775,21 +1766,13 @@ tool_init(rocprofiler_client_finalize_t fini_func, void* tool_data) // hip_api_buffered_buffer), // "buffer tracing service configure"); - ROCPROFILER_CALL( - rocprofiler_configure_buffer_tracing_service(marker_api_buffered_ctx, - ROCPROFILER_BUFFER_TRACING_MARKER_CORE_API, - nullptr, - 0, - marker_api_buffered_buffer), - "buffer tracing service configure"); - - // ROCPROFILER_CALL(rocprofiler_configure_buffer_tracing_service( - // marker_api_buffered_ctx, - // ROCPROFILER_BUFFER_TRACING_MARKER_CORE_RANGE_API, - // nullptr, - // 0, - // marker_api_buffered_buffer), - // "buffer tracing service configure"); + ROCPROFILER_CALL(rocprofiler_configure_buffer_tracing_service( + marker_api_buffered_ctx, + ROCPROFILER_BUFFER_TRACING_MARKER_CORE_RANGE_API, + nullptr, + 0, + marker_api_buffered_buffer), + "buffer tracing service configure"); ROCPROFILER_CALL( rocprofiler_configure_buffer_tracing_service(marker_api_buffered_ctx, @@ -2546,6 +2529,61 @@ write_perfetto() auto buffer_names = sdk::get_buffer_tracing_names(); auto callbk_name_info = sdk::get_callback_tracing_names(); + for(const auto& itr : marker_api_bf_records) + { + std::string_view name = ""; + auto& track = thread_tracks.at(itr.thread_id); + + auto _args = callback_arg_array_t{}; + if(enable_debug_annotations) + { + using namespace std::string_view_literals; + + auto ritr = std::find_if(marker_api_cb_records.begin(), + marker_api_cb_records.end(), + [&itr](const auto& citr) { + return (citr.record.correlation_id.internal == + itr.correlation_id.internal && + !citr.args.empty()); + }); + + if(ritr != marker_api_cb_records.end()) + { + auto elem = + std::find_if(ritr->args.cbegin(), ritr->args.cend(), [](const auto& arg) { + return arg.first == "message"sv; + }); + if(elem != ritr->args.end()) + { + name = elem->second; + } + } + } + + TRACE_EVENT_BEGIN(sdk::perfetto_category::name, + ::perfetto::StaticString(name.data()), + track, + itr.start_timestamp, + ::perfetto::Flow::ProcessScoped(itr.correlation_id.internal), + "begin_ns", + itr.start_timestamp, + "tid", + itr.thread_id, + "kind", + itr.kind, + "operation", + itr.operation, + "corr_id", + itr.correlation_id.internal, + "ancestor_id", + itr.correlation_id.ancestor); + TRACE_EVENT_END(sdk::perfetto_category::name, + track, + itr.end_timestamp, + "end_ns", + itr.end_timestamp); + } + for(const auto& itr : hsa_api_bf_records) { auto name = buffer_names.at(itr.kind, itr.operation); @@ -2840,7 +2878,9 @@ write_perfetto() "dst_agent", agents_map.at(itr.dst_agent_id).logical_node_id, "copy_bytes", - itr.bytes); + itr.bytes, + "corr_id", + itr.correlation_id.internal); TRACE_EVENT_END(sdk::perfetto_category::name, track, itr.end_timestamp, From 144f60f9044d9d5d529fd1c1aee5fd14ae0da705 Mon Sep 17 00:00:00 2001 From: Mythreya Date: Wed, 27 Aug 2025 00:40:00 +0000 Subject: [PATCH 2/2] enable MARKER_CORE_API --- .../rocprofiler-sdk/tests/tools/json-tool.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/projects/rocprofiler-sdk/tests/tools/json-tool.cpp b/projects/rocprofiler-sdk/tests/tools/json-tool.cpp index 233df01467b..ea741c1bfaa 100644 --- a/projects/rocprofiler-sdk/tests/tools/json-tool.cpp +++ b/projects/rocprofiler-sdk/tests/tools/json-tool.cpp @@ -1421,6 +1421,15 @@ tool_init(rocprofiler_client_finalize_t fini_func, void* tool_data) nullptr), "code object tracing service configure"); + ROCPROFILER_CALL( + rocprofiler_configure_callback_tracing_service(marker_api_callback_ctx, + ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_API, + nullptr, + 0, + tool_tracing_callback, + nullptr), + "marker core api tracing service configure"); + ROCPROFILER_CALL(rocprofiler_configure_callback_tracing_service( marker_api_callback_ctx, ROCPROFILER_CALLBACK_TRACING_MARKER_CORE_RANGE_API, @@ -1766,6 +1775,14 @@ tool_init(rocprofiler_client_finalize_t fini_func, void* tool_data) // hip_api_buffered_buffer), // "buffer tracing service configure"); + ROCPROFILER_CALL( + rocprofiler_configure_buffer_tracing_service(marker_api_buffered_ctx, + ROCPROFILER_BUFFER_TRACING_MARKER_CORE_API, + nullptr, + 0, + marker_api_buffered_buffer), + "buffer tracing service configure - MARKER_CORE_API"); + ROCPROFILER_CALL(rocprofiler_configure_buffer_tracing_service( marker_api_buffered_ctx, ROCPROFILER_BUFFER_TRACING_MARKER_CORE_RANGE_API,