From 7aaf49a64158b43e5c24dbe21ecf9102efd29a7d Mon Sep 17 00:00:00 2001 From: gobhardw Date: Fri, 27 Oct 2023 14:08:37 +0530 Subject: [PATCH] SWDEV-429377 : Fixing kernel name truncation for plugins Change-Id: I5875048d1773959fdd73cbff5498854e61b92af8 [ROCm/rocprofiler commit: 49bd09b46cdefbfabde414c85325c9affee572f2] --- projects/rocprofiler/plugin/ctf/plugin.cpp | 2 +- projects/rocprofiler/plugin/file/file.cpp | 4 ++-- projects/rocprofiler/plugin/file/file_v1.cpp | 4 ++-- projects/rocprofiler/plugin/perfetto/perfetto.cpp | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/projects/rocprofiler/plugin/ctf/plugin.cpp b/projects/rocprofiler/plugin/ctf/plugin.cpp index df7923fa7b..d8ff09736f 100644 --- a/projects/rocprofiler/plugin/ctf/plugin.cpp +++ b/projects/rocprofiler/plugin/ctf/plugin.cpp @@ -612,7 +612,7 @@ void Plugin::HandleTracerRecord(const rocprofiler_record_tracer_t& record, std::string kernel_name; hip_api_data_t hip_api_data = *(record.api_data.hip); if (record.name != nullptr) - kernel_name = rocprofiler::cxx_demangle(std::string(record.name)); + kernel_name = rocprofiler::truncate_name(rocprofiler::cxx_demangle(std::string(record.name))); else kernel_name = ""; hip_api_tracer_.AddEventRecord( diff --git a/projects/rocprofiler/plugin/file/file.cpp b/projects/rocprofiler/plugin/file/file.cpp index ef87c3ad1a..2648c811a0 100644 --- a/projects/rocprofiler/plugin/file/file.cpp +++ b/projects/rocprofiler/plugin/file/file.cpp @@ -307,7 +307,7 @@ class file_plugin_t { } if (operation_name_c) ss << ",\"" << operation_name_c << "\""; if (tracer_record.name && tracer_record.domain != ACTIVITY_DOMAIN_ROCTX) { - ss << ",\"" << rocprofiler::cxx_demangle(tracer_record.name) << "\""; + ss << ",\"" << rocprofiler::truncate_name(rocprofiler::cxx_demangle(tracer_record.name)) << "\""; } else if (tracer_record.domain == ACTIVITY_DOMAIN_HIP_OPS) { ss << ","; } @@ -379,7 +379,7 @@ class file_plugin_t { << std::to_string(profiler_record->kernel_properties.wave_size); std::string kernel_name = ""; if (name_length > 1) { - kernel_name = rocprofiler::cxx_demangle(kernel_name_c); + kernel_name = rocprofiler::truncate_name(rocprofiler::cxx_demangle(kernel_name_c)); std::string key = "\""; std::size_t found = kernel_name.rfind(key); while (found != std::string::npos) { diff --git a/projects/rocprofiler/plugin/file/file_v1.cpp b/projects/rocprofiler/plugin/file/file_v1.cpp index eedc14d8bf..29289b55c3 100644 --- a/projects/rocprofiler/plugin/file/file_v1.cpp +++ b/projects/rocprofiler/plugin/file/file_v1.cpp @@ -336,7 +336,7 @@ class file_plugin_t { } if (operation_name_c) *output_file << ",\"" << operation_name_c << "\""; if (tracer_record.name && tracer_record.domain != ACTIVITY_DOMAIN_ROCTX) { - *output_file << ",\"" << rocprofiler::cxx_demangle(tracer_record.name) << "\""; + *output_file << ",\"" << rocprofiler::truncate_name(rocprofiler::cxx_demangle(tracer_record.name)) << "\""; } else if (tracer_record.domain == ACTIVITY_DOMAIN_HIP_OPS) { *output_file << ","; } @@ -369,7 +369,7 @@ class file_plugin_t { *output_file << std::to_string(profiler_record->header.id.handle) << ","; std::string kernel_name = ""; if (name_length > 1) { - kernel_name = rocprofiler::cxx_demangle(kernel_name_c); + kernel_name = rocprofiler::truncate_name(rocprofiler::cxx_demangle(kernel_name_c)); std::string key = "\""; std::size_t found = kernel_name.rfind(key); while (found != std::string::npos) { diff --git a/projects/rocprofiler/plugin/perfetto/perfetto.cpp b/projects/rocprofiler/plugin/perfetto/perfetto.cpp index 3f97163294..318e800ca2 100644 --- a/projects/rocprofiler/plugin/perfetto/perfetto.cpp +++ b/projects/rocprofiler/plugin/perfetto/perfetto.cpp @@ -121,7 +121,7 @@ std::string get_kernel_name(rocprofiler_record_profiler_t& profiler_record) { CHECK_ROCPROFILER(rocprofiler_query_kernel_info(ROCPROFILER_KERNEL_NAME, profiler_record.kernel_id, &kernel_name_c)); if (kernel_name_c && strlen(kernel_name_c) > 1) - kernel_name = rocprofiler::cxx_demangle(strdup(kernel_name_c)); + kernel_name = rocprofiler::truncate_name(rocprofiler::cxx_demangle(strdup(kernel_name_c))); } #pragma GCC diagnostic pop return kernel_name; @@ -548,7 +548,7 @@ class perfetto_plugin_t { case ACTIVITY_DOMAIN_HIP_OPS: { std::string::size_type pos = std::string::npos; if (tracer_record.name) { - kernel_name = rocprofiler::cxx_demangle(tracer_record.name); + kernel_name = rocprofiler::truncate_name(rocprofiler::cxx_demangle(tracer_record.name)); TRACE_EVENT_BEGIN( "HIP_OPS", perfetto::DynamicString(rocprofiler::truncate_name(kernel_name).c_str()), gpu_track, tracer_record.timestamps.begin.value, "Agent ID",