diff --git a/projects/rocprofiler-systems/CHANGELOG.md b/projects/rocprofiler-systems/CHANGELOG.md index a196326b0a..57b936bbcc 100644 --- a/projects/rocprofiler-systems/CHANGELOG.md +++ b/projects/rocprofiler-systems/CHANGELOG.md @@ -18,6 +18,7 @@ Full documentation for ROCm Systems Profiler is available at [https://rocm.docs. ### Resolved issues - Fixed a crash when running `rocprof-sys-python` with ROCPROFSYS_USE_ROCPD enabled. +- Fixed an issue where kernel/memory-copy events could appear on the wrong Perfetto track (e.g., queue track when stream grouping was requested) because _group_by_queue state leaked between records. ## ROCm Systems Profiler 1.2.0 for ROCm 7.1.0 diff --git a/projects/rocprofiler-systems/source/lib/rocprof-sys/library/rocprofiler-sdk.cpp b/projects/rocprofiler-systems/source/lib/rocprof-sys/library/rocprofiler-sdk.cpp index 0b514ffbe1..d1fd153635 100644 --- a/projects/rocprofiler-systems/source/lib/rocprof-sys/library/rocprofiler-sdk.cpp +++ b/projects/rocprofiler-systems/source/lib/rocprof-sys/library/rocprofiler-sdk.cpp @@ -1578,7 +1578,7 @@ tool_tracing_buffered(rocprofiler_context_id_t /*context*/, return JOIN("", "HIP Activity Stream ", _stream_id); }; - bool _group_by_queue = get_group_by_queue(); + const bool _default_group_by_queue = get_group_by_queue(); static auto _mtx = std::mutex{}; auto _lk = std::unique_lock{ _mtx }; @@ -1595,6 +1595,8 @@ tool_tracing_buffered(rocprofiler_context_id_t /*context*/, static_cast( header->payload); + bool _group_by_queue = _default_group_by_queue; + const auto* _kern_sym_data = get_kernel_symbol_info(record->dispatch_info.kernel_id); @@ -1719,6 +1721,8 @@ tool_tracing_buffered(rocprofiler_context_id_t /*context*/, static_cast( header->payload); + bool _group_by_queue = _default_group_by_queue; + auto _stack_id = record->correlation_id.internal; auto _beg_ns = record->start_timestamp; auto _end_ns = record->end_timestamp;