Skip to content

feat(rocprofiler-systems): Add basic foundation for unified trace control - #8749

Merged
marantic-amd merged 43 commits into
developfrom
users/marantic-amd/control-session-foundation
Sep 17, 2026
Merged

marantic-amd merged 43 commits into
developfrom
users/marantic-amd/control-session-foundation

Conversation

@marantic-amd

@marantic-amd marantic-amd commented Jul 17, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

  • At the moment different mechanisms exist inside our codebase which in their own way allow user to control the flow of the tracing/profiling session. This leads to those mechanisms not being coherent and flaky. This PR is first in series that sets a foundation for unified approach in trace/profiler control with intention to resolve surrounding bugs and flakiness, and make a centralized point for this feature.

Technical Details

  • Renames the old trace_control class to control::session; introduces control::subscriber (a declarative pause/resume registration replacing the old monolithic callback-pair fan-out) and the lock-free is_active() atomic. Session's mutating API is named for what it does to a trigger or a vote: register_trigger()/unregister_trigger(), publish_vote(), is_active_excluding_trigger().
  • Extracts ROCtx's region-filter and user-pause state into control::triggers::roctx, decoupled from session
  • Switches internal vote storage to value-based vote_entry snapshots so the session never holds a pointer to a trigger. Trigger and session lifetimes are fully decoupled.
  • Adds the ClockPolicy concept, clocks::steady (production), and the triggers::time_window<Clock> template, purely additive, not wired into the runtime within this PR. The test-only virtual clock (control::testing::mock_clock) is intended to be used for testing purposes once the system is wired in codebase.

JIRA ID

JIRA ID : AIPROFSYST-91

Test Plan

  • ctest --test-dir build/debug-optimized -R 'control|session|roctx' (targeted regression net for this PR's touched subsystems).
  • Full GTest unit suite (bin/rocprof-sys-unit-tests), unfiltered, to catch any regression outside the targeted set.

Test Result

  • Build: clean, whole project, no warnings introduced
  • Full CTest suite passed
  • All unit tests pass

Submission Checklist

@therock-pr-bot

therock-pr-bot Bot commented Jul 17, 2026 •

Copy link
Copy Markdown

✅ All Policy Checks Passed

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —

🎉 All policy checks passed!

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

@therock-pr-bot

Copy link
Copy Markdown

🚫 Please fix the failed policies before requesting reviews.

The following policy checks failed:

  • ❌ PR Title/Description

The Not ready to Review label has been added to this PR.
Once all policies pass, the label will be removed automatically.

@github-actions

github-actions Bot commented Jul 17, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage Report

Code Coverage Report

Unit Tests

Code Coverage: unit-tests

Lines: 🔴 24.7% — 9,205/37,210 across 339 files
Functions: 🔴 27.0% — 1,033/3,825

🔴 0-20% (189 files)
Lines Functions File
0.0% 0/10 0/2 build/coverage/_deps/nlohmann_json-src/include/nlohmann/byte_container_with_subtype.hpp
0.0% 0/1 0/1 build/coverage/_deps/spdlog-src/include/spdlog/details/log_msg_buffer.h
0.0% 0/1 0/1 build/coverage/_deps/spdlog-src/include/spdlog/sinks/ansicolor_sink.h
0.0% 0/2 0/1 build/coverage/include/profiler-hub/shared_types.hpp
0.0% 0/105 0/9 source/bin/common/argument_registration.hpp
0.0% 0/254 0/28 source/bin/common/tool_runner.cpp
0.0% 0/59 0/6 source/bin/rocprof-sys-avail/avail.hpp
0.0% 0/260 0/12 source/bin/rocprof-sys-avail/generate_config.cpp
0.0% 0/102 0/6 source/bin/rocprof-sys-avail/hw_counter_query.cpp
0.0% 0/447 0/47 source/bin/rocprof-sys-causal/impl.cpp
0.0% 0/80 0/2 source/bin/rocprof-sys-causal/rocprof-sys-causal.cpp
0.0% 0/670 0/45 source/bin/rocprof-sys-instrument/details.cpp
0.0% 0/91 0/7 source/bin/rocprof-sys-instrument/function_signature.cpp
0.0% 0/20 0/5 source/bin/rocprof-sys-instrument/function_signature.hpp
0.0% 0/158 0/7 source/bin/rocprof-sys-instrument/info.hpp
0.0% 0/264 0/22 source/bin/rocprof-sys-instrument/internal_libs.cpp
0.0% 0/64 0/6 source/bin/rocprof-sys-instrument/log.cpp
0.0% 0/5 0/1 source/bin/rocprof-sys-instrument/log.hpp
0.0% 0/532 0/41 source/bin/rocprof-sys-instrument/module_function.cpp
0.0% 0/93 0/7 source/bin/rocprof-sys-instrument/module_function.hpp
0.0% 0/1535 0/87 source/bin/rocprof-sys-instrument/rocprof-sys-instrument.cpp
0.0% 0/157 0/12 source/bin/rocprof-sys-instrument/rocprof-sys-instrument.hpp
0.0% 0/2 0/1 source/bin/rocprof-sys-run/rocprof-sys-run.cpp
0.0% 0/2 0/1 source/bin/rocprof-sys-sample/rocprof-sys-sample.cpp
0.0% 0/24 0/1 source/lib/backends/amd_smi/wrapper.hpp
0.0% 0/16 0/4 source/lib/binary/address_multirange.cpp
0.0% 0/9 0/1 source/lib/binary/address_multirange.hpp
0.0% 0/117 0/5 source/lib/binary/analysis.cpp
0.0% 0/7 0/1 source/lib/binary/binary_info.hpp
0.0% 0/102 0/9 source/lib/binary/dwarf_entry.cpp
0.0% 0/1 0/1 source/lib/binary/dwarf_entry.hpp
0.0% 0/69 0/6 source/lib/binary/link_map.cpp
0.0% 0/3 0/1 source/lib/binary/link_map.hpp
0.0% 0/10 0/1 source/lib/binary/scope_filter.cpp
0.0% 0/5 0/2 source/lib/binary/scope_filter.hpp
0.0% 0/158 0/18 source/lib/binary/symbol.cpp
0.0% 0/8 0/8 source/lib/binary/symbol.hpp
0.0% 0/9 0/2 source/lib/common/env_vars.hpp
0.0% 0/40 0/3 source/lib/common/invoke.hpp
0.0% 0/150 0/10 source/lib/common/md5sum.hpp
0.0% 0/22 0/2 source/lib/common/setup.hpp
0.0% 0/166 0/2 source/lib/core/agent_info.hpp
0.0% 0/80 0/18 source/lib/core/binary/address_range.cpp
0.0% 0/9 0/3 source/lib/core/binary/address_range.hpp
0.0% 0/21 0/6 source/lib/core/categories.cpp
0.0% 0/11 0/11 source/lib/core/components/fwd.hpp
0.0% 0/14 0/2 source/lib/core/containers/aligned_static_vector.hpp
0.0% 0/11 0/3 source/lib/core/containers/c_array.hpp
0.0% 0/1 0/1 source/lib/core/containers/operators.hpp
0.0% 0/46 0/12 source/lib/core/containers/stable_vector.hpp
0.0% 0/23 0/5 source/lib/core/containers/static_vector.hpp
0.0% 0/15 0/3 source/lib/core/control/clocks/steady.cpp
0.0% 0/2 0/2 source/lib/core/control/clocks/steady.hpp
0.0% 0/84 0/5 source/lib/core/cpu.cpp
0.0% 0/1 0/1 source/lib/core/cpu.hpp
0.0% 0/54 0/6 source/lib/core/dynamic_library.cpp
0.0% 0/28 0/7 source/lib/core/exception.cpp
0.0% 0/160 0/12 source/lib/core/gpu_metrics.cpp
0.0% 0/33 0/6 source/lib/core/mpi.hpp
0.0% 0/24 0/2 source/lib/core/node_info.cpp
0.0% 0/2 0/2 source/lib/core/node_info.hpp
0.0% 0/80 0/5 source/lib/core/perf.cpp
0.0% 0/50 0/5 source/lib/core/perfetto/cached_perfetto_session.cpp
0.0% 0/33 0/4 source/lib/core/perfetto/counter_track.hpp
0.0% 0/29 0/7 source/lib/core/perfetto/emitter.cpp
0.0% 0/48 0/9 source/lib/core/perfetto/emitter.hpp
0.0% 0/7 0/1 source/lib/core/perfetto/sinks/append_mode.hpp
0.0% 0/1 0/1 source/lib/core/progress/bar.hpp
0.0% 0/8 0/3 source/lib/core/sdk/tracing-config-deps.hpp
0.0% 0/54 0/3 source/lib/core/trace_cache/cache_manager.cpp
0.0% 0/7 0/3 source/lib/core/trace_cache/cache_manager.hpp
0.0% 0/516 0/71 source/lib/core/trace_cache/metadata_registry.cpp
0.0% 0/784 0/102 source/lib/core/trace_cache/perfetto_processor.cpp
0.0% 0/119 0/12 source/lib/core/trace_cache/post_processor.cpp
0.0% 0/829 0/32 source/lib/core/trace_cache/rocpd_processor.cpp
0.0% 0/77 0/1 source/lib/core/trace_cache/sample_processor.hpp
0.0% 0/14 0/6 source/lib/rocprof-sys-causal-api/causal_api.cpp
0.0% 0/540 0/85 source/lib/rocprof-sys-dl/dl.cpp
0.0% 0/16 0/1 source/lib/rocprof-sys-dl/main.c
0.0% 0/280 0/31 source/lib/rocprof-sys-rt/src/RTcommon.c
0.0% 0/29 0/4 source/lib/rocprof-sys-rt/src/RTheap-linux.c
0.0% 0/65 0/4 source/lib/rocprof-sys-rt/src/RTheap.c
0.0% 0/212 0/22 source/lib/rocprof-sys-rt/src/RTlinux.c
0.0% 0/97 0/8 source/lib/rocprof-sys-rt/src/RTposix.c
0.0% 0/6 0/2 source/lib/rocprof-sys-rt/src/RTsignal.c
0.0% 0/11 0/2 source/lib/rocprof-sys-rt/src/RTthread-x86-64.c
0.0% 0/3 0/1 source/lib/rocprof-sys-rt/src/RTthread.c
0.0% 0/84 0/20 source/lib/rocprof-sys/api.cpp
0.0% 0/669 0/40 source/lib/rocprof-sys/library.cpp
0.0% 0/73 0/6 source/lib/rocprof-sys/library/causal/components/backtrace.cpp
0.0% 0/7 0/2 source/lib/rocprof-sys/library/causal/components/backtrace.hpp
0.0% 0/105 0/11 source/lib/rocprof-sys/library/causal/components/blocking_gotcha.cpp
0.0% 0/33 0/7 source/lib/rocprof-sys/library/causal/components/causal_gotcha.cpp
0.0% 0/85 0/22 source/lib/rocprof-sys/library/causal/components/progress_point.cpp
0.0% 0/23 0/3 source/lib/rocprof-sys/library/causal/components/progress_point.hpp
0.0% 0/49 0/8 source/lib/rocprof-sys/library/causal/components/unblocking_gotcha.cpp
0.0% 0/553 0/33 source/lib/rocprof-sys/library/causal/data.cpp
0.0% 0/89 0/16 source/lib/rocprof-sys/library/causal/delay.cpp
0.0% 0/380 0/29 source/lib/rocprof-sys/library/causal/experiment.cpp
0.0% 0/3 0/2 source/lib/rocprof-sys/library/causal/experiment.hpp
0.0% 0/24 0/5 source/lib/rocprof-sys/library/causal/sample_data.cpp
0.0% 0/268 0/25 source/lib/rocprof-sys/library/causal/sampling.cpp
0.0% 0/4 0/1 source/lib/rocprof-sys/library/causal/selected_entry.cpp
0.0% 0/5 0/3 source/lib/rocprof-sys/library/causal/selected_entry.hpp
0.0% 0/71 0/11 source/lib/rocprof-sys/library/components/backtrace.cpp
0.0% 0/1 0/1 source/lib/rocprof-sys/library/components/backtrace.hpp
0.0% 0/214 0/30 source/lib/rocprof-sys/library/components/backtrace_metrics.cpp
0.0% 0/11 0/2 source/lib/rocprof-sys/library/components/backtrace_metrics.hpp
0.0% 0/9 0/3 source/lib/rocprof-sys/library/components/backtrace_timestamp.cpp
0.0% 0/4 0/2 source/lib/rocprof-sys/library/components/backtrace_timestamp.hpp
0.0% 0/71 0/10 source/lib/rocprof-sys/library/components/callchain.cpp
0.0% 0/1 0/1 source/lib/rocprof-sys/library/components/callchain.hpp
0.0% 0/367 0/30 source/lib/rocprof-sys/library/components/comm_data.cpp
0.0% 0/19 0/5 source/lib/rocprof-sys/library/components/comm_data.hpp
0.0% 0/8 0/2 source/lib/rocprof-sys/library/components/ensure_storage.hpp
0.0% 0/28 0/6 source/lib/rocprof-sys/library/components/exit_gotcha.cpp
0.0% 0/1 0/1 source/lib/rocprof-sys/library/components/exit_gotcha.hpp
0.0% 0/68 0/8 source/lib/rocprof-sys/library/components/fork_gotcha.cpp
0.0% 0/1 0/1 source/lib/rocprof-sys/library/components/fork_gotcha.hpp
0.0% 0/13 0/3 source/lib/rocprof-sys/library/components/kill_gotcha.cpp
0.0% 0/1 0/1 source/lib/rocprof-sys/library/components/kill_gotcha.hpp
0.0% 0/170 0/22 source/lib/rocprof-sys/library/components/mpi_gotcha.cpp
0.0% 0/2 0/1 source/lib/rocprof-sys/library/components/mpi_gotcha.hpp
0.0% 0/533 0/12 source/lib/rocprof-sys/library/components/mpip.hpp
0.0% 0/78 0/19 source/lib/rocprof-sys/library/components/numa_gotcha.cpp
0.0% 0/2 0/1 source/lib/rocprof-sys/library/components/numa_gotcha.hpp
0.0% 0/335 0/20 source/lib/rocprof-sys/library/components/pthread_create_gotcha.cpp
0.0% 0/5 0/1 source/lib/rocprof-sys/library/components/pthread_create_gotcha.hpp
0.0% 0/34 0/9 source/lib/rocprof-sys/library/components/pthread_gotcha.cpp
0.0% 0/24 0/2 source/lib/rocprof-sys/library/components/pthread_mutex_gotcha_policy.hpp
0.0% 0/164 0/31 source/lib/rocprof-sys/library/components/vaapi_gotcha.cpp
0.0% 0/2 0/1 source/lib/rocprof-sys/library/components/vaapi_gotcha.hpp
0.0% 0/143 0/10 source/lib/rocprof-sys/library/coverage.cpp
0.0% 0/29 0/5 source/lib/rocprof-sys/library/coverage.hpp
0.0% 0/60 0/16 source/lib/rocprof-sys/library/coverage/impl.hpp
0.0% 0/252 0/37 source/lib/rocprof-sys/library/kokkosp.cpp
0.0% 0/252 0/32 source/lib/rocprof-sys/library/perf.cpp
0.0% 0/11 0/3 source/lib/rocprof-sys/library/perf.hpp
0.0% 0/172 0/10 source/lib/rocprof-sys/library/pmc/collectors/common/settings.hpp
0.0% 0/66 0/5 source/lib/rocprof-sys/library/pmc/collectors/cpu/cache_policy.hpp
0.0% 0/47 0/6 source/lib/rocprof-sys/library/pmc/collectors/cpu/cpu_traits.hpp
0.0% 0/52 0/9 source/lib/rocprof-sys/library/pmc/collectors/cpu/perfetto_policy.hpp
0.0% 0/116 0/6 source/lib/rocprof-sys/library/pmc/collectors/gpu/cache_policy.hpp
0.0% 0/224 0/36 source/lib/rocprof-sys/library/pmc/collectors/gpu/perfetto_policy.hpp
0.0% 0/25 0/3 source/lib/rocprof-sys/library/pmc/collectors/gpu/sample.hpp
0.0% 0/33 0/3 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/cache_policy.hpp
0.0% 0/39 0/7 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/perfetto_policy.hpp
0.0% 0/16 0/2 source/lib/rocprof-sys/library/pmc/collectors/nic/sample.hpp
0.0% 0/14 0/2 source/lib/rocprof-sys/library/pmc/device_providers/procfs/provider.hpp
0.0% 0/164 0/20 source/lib/rocprof-sys/library/pmc/sampler.cpp
0.0% 0/121 0/11 source/lib/rocprof-sys/library/process_sampler.cpp
0.0% 0/15 0/3 source/lib/rocprof-sys/library/process_sampler.hpp
0.0% 0/2 0/1 source/lib/rocprof-sys/library/rocm.cpp
0.0% 0/1264 0/89 source/lib/rocprof-sys/library/rocprofiler-sdk.cpp
0.0% 0/109 0/13 source/lib/rocprof-sys/library/rocprofiler-sdk/counters.cpp
0.0% 0/17 0/6 source/lib/rocprof-sys/library/rocprofiler-sdk/counters.hpp
0.0% 0/129 0/9 source/lib/rocprof-sys/library/rocprofiler-sdk/fwd.cpp
0.0% 0/34 0/7 source/lib/rocprof-sys/library/rocprofiler-sdk/fwd.hpp
0.0% 0/36 0/9 source/lib/rocprof-sys/library/rocprofiler-sdk/marker_writer.cpp
0.0% 0/136 0/13 source/lib/rocprof-sys/library/rocprofiler-sdk/rccl.cpp
0.0% 0/108 0/10 source/lib/rocprof-sys/library/rocprofiler-sdk/roctx_client.cpp
0.0% 0/118 0/20 source/lib/rocprof-sys/library/runtime.cpp
0.0% 0/2 0/1 source/lib/rocprof-sys/library/runtime.hpp
0.0% 0/955 0/58 source/lib/rocprof-sys/library/sampling.cpp
0.0% 0/145 0/31 source/lib/rocprof-sys/library/thread_data.hpp
0.0% 0/10 0/3 source/lib/rocprof-sys/library/thread_data_growth.hpp
0.0% 0/10 0/1 source/lib/rocprof-sys/library/thread_deleter.cpp
0.0% 0/5 0/1 source/lib/rocprof-sys/library/thread_deleter.hpp
0.0% 0/161 0/27 source/lib/rocprof-sys/library/thread_info.cpp
0.0% 0/2 0/1 source/lib/rocprof-sys/library/thread_info.hpp
0.0% 0/113 0/11 source/lib/rocprof-sys/library/tracing.cpp
0.0% 0/109 0/30 source/lib/rocprof-sys/library/tracing.hpp
0.0% 0/3 0/1 source/lib/rocprof-sys/library/tracing/annotation.cpp
0.0% 0/45 0/4 source/lib/rocprof-sys/library/tracing/annotation.hpp
0.0% 0/8 0/2 source/lib/rocprof-sys/progress.cpp
0.0% 0/74 0/16 source/lib/rocprof-sys/regions.cpp
0.0% 0/91 0/6 source/lib/rocprof-sys/timeout.cpp
0.0% 0/439 0/45 source/python/libpyrocprofsys.cpp
0.6% 1/169 1/13 source/lib/core/perfetto.cpp
0.8% 7/847 1/73 source/lib/core/argparse.cpp
6.9% 31/449 6/53 build/coverage/_deps/fmt-src/include/fmt/chrono.h
7.1% 1/14 0/1 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/iterators/primitive_iterator.hpp
8.3% 2/24 1/2 source/lib/core/amd_smi.cpp
14.0% 30/215 8/24 source/bin/rocprof-sys-avail/common.cpp
16.7% 4/24 0/2 source/lib/backends/rocprofiler_sdk/wrapper.hpp
18.0% 32/178 6/23 source/lib/core/gpu.cpp
18.2% 4/22 1/3 source/lib/common/static_object.hpp
18.8% 6/32 0/6 source/lib/rocprof-sys/library/rocprofiler-sdk/types.hpp
19.4% 6/31 2/5 source/bin/common/common_utils.hpp
🟠 20-50% (12 files)
Lines Functions File
20.0% 1/5 0/2 source/lib/core/argparse.hpp
23.2% 13/56 1/4 source/lib/core/mproc.cpp
29.4% 354/1206 34/96 build/coverage/_deps/fmt-src/include/fmt/format.h
32.1% 52/162 7/17 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/input/json_sax.hpp
32.8% 20/61 4/9 source/lib/core/utility.hpp
35.0% 603/1722 155/301 source/lib/core/config.cpp
36.5% 23/63 6/12 source/lib/core/agent_manager.cpp
36.7% 11/30 1/6 source/lib/core/trace_cache/metadata_registry.hpp
40.3% 195/484 14/17 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/input/lexer.hpp
40.5% 17/42 5/12 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/exceptions.hpp
46.1% 434/941 10/48 source/bin/rocprof-sys-avail/avail.cpp
49.6% 127/256 14/32 source/lib/rocprof-sys/library/components/category_region.hpp
🟡 50-80% (37 files)
Lines Functions File
50.0% 153/306 9/11 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/output/serializer.hpp
50.0% 1/2 0/1 source/lib/rocprof-sys/library/pmc/collectors/nic/types.hpp
51.0% 213/418 24/36 source/bin/common/common_utils.cpp
52.0% 13/25 2/3 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/gpu_perf_counter_traits.hpp
52.1% 25/48 3/5 source/lib/core/output_file_registry.cpp
53.3% 8/15 3/3 source/lib/core/perfetto/sinks/per_pid_file_sink.cpp
55.0% 22/40 4/6 build/coverage/_deps/fmt-src/include/fmt/ranges.h
55.0% 262/476 20/39 build/coverage/_deps/fmt-src/include/fmt/base.h
55.7% 34/61 5/8 source/lib/rocprof-sys/library/pmc/collectors/cpu/sample.hpp
58.3% 14/24 3/8 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/output/output_adapters.hpp
58.3% 7/12 0/4 build/coverage/_deps/spdlog-src/include/spdlog/common.h
60.0% 3/5 1/1 source/lib/core/agent.hpp
62.1% 272/438 33/41 build/coverage/_deps/nlohmann_json-src/include/nlohmann/json.hpp
62.1% 41/66 7/8 source/lib/rocprof-sys/library/pmc/collectors/base/collector.hpp
62.8% 49/78 4/5 source/lib/core/trace_cache/discovery.cpp
63.1% 70/111 7/10 source/lib/core/progress/bar.cpp
64.5% 333/516 26/40 source/bin/common/json_config.cpp
65.4% 34/52 4/4 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/conversions/from_json.hpp
65.4% 17/26 2/3 source/lib/core/config.hpp
66.2% 47/71 5/5 source/lib/rocprof-sys/library/pmc/collectors/gpu/gpu_traits.hpp
66.4% 87/131 4/5 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/input/parser.hpp
66.7% 2/3 0/2 source/lib/rocprof-sys/library/pmc/collectors/cpu/types.hpp
67.2% 43/64 11/14 source/lib/core/trace_cache/data_types.cpp
68.4% 39/57 4/6 source/lib/core/perfetto.hpp
68.8% 22/32 3/8 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/types.hpp
71.1% 69/97 8/8 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/iterators/iter_impl.hpp
71.8% 219/305 15/17 source/bin/common/preset_registry.cpp
72.2% 13/18 2/6 source/lib/rocprof-sys/library/rocprofiler-sdk/roctx_client.hpp
72.3% 86/119 14/17 source/lib/core/perfetto/engine.cpp
73.7% 28/38 6/7 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/iterators/iteration_proxy.hpp
74.4% 32/43 3/3 source/lib/core/perfetto/sinks/file_output.cpp
74.5% 41/55 4/7 source/lib/core/config/trace_period_config.hpp
75.0% 3/4 0/1 source/lib/backends/amd_smi/nic_types.hpp
75.0% 3/4 1/2 source/lib/rocprof-sys/library/rocprofiler-sdk/callback/code_object.hpp
76.0% 76/100 9/10 source/lib/core/perfetto/engine_impl.hpp
77.8% 7/9 0/1 source/bin/rocprof-sys-avail/info_type.hpp
78.6% 77/98 4/4 source/lib/core/perfetto/sinks/single_file_sink.cpp
🟢 80-100% (101 files)
Lines Functions File
80.0% 8/10 1/2 build/coverage/include/profiler-hub/writer_types.hpp
80.3% 61/76 9/10 source/lib/rocprof-sys/library/pmc/device_providers/rocprofiler_sdk/provider.hpp
81.1% 99/122 14/16 source/lib/common/path.hpp
82.8% 48/58 6/7 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/conversions/to_json.hpp
83.4% 131/157 10/14 source/lib/backends/procfs/backend.hpp
83.9% 73/87 10/12 source/lib/logger/logger.hpp
84.4% 54/64 4/4 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/page_migrate.hpp
85.1% 40/47 2/2 source/lib/core/trace_cache/storage_parser.hpp
85.2% 52/61 9/11 source/lib/common/string_utility.hpp
85.5% 47/55 4/4 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/device.hpp
86.9% 213/245 15/16 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/conversions/to_chars.hpp
88.1% 251/285 28/33 source/lib/common/environment.hpp
89.1% 49/55 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_page_migrate.hpp
89.1% 41/46 7/7 source/lib/core/control/triggers/time_window.hpp
89.2% 223/250 23/33 source/lib/core/sdk/tracing-config.hpp
89.5% 34/38 5/7 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/input/input_adapters.hpp
90.0% 54/60 4/4 source/lib/core/trace_cache/buffer_storage.cpp
90.1% 100/111 8/8 source/lib/rocprof-sys/library/pmc/collectors/cpu/device.hpp
90.2% 240/266 21/30 source/lib/core/trace_cache/sample_type.hpp
90.5% 38/42 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_page_fault.hpp
90.5% 38/42 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_queue.hpp
90.7% 243/268 19/20 source/lib/core/trace_cache/unified_memory_processor.cpp
90.9% 10/11 1/2 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/json_ref.hpp
90.9% 40/44 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/queue.hpp
91.3% 178/195 14/18 source/lib/rocprof-sys/library/components/shmem_gotcha.hpp
91.5% 43/47 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_unmap_from_gpu.hpp
91.7% 11/12 2/2 source/lib/core/perfetto/session_backend.hpp
92.2% 47/51 7/7 source/lib/core/control/clocks/posix.hpp
92.6% 163/176 9/9 source/lib/rocprof-sys/library/pmc/collectors/gpu/device.hpp
92.9% 13/14 0/1 source/lib/rocprof-sys/library/pmc/collectors/common/collector_slice.hpp
93.0% 40/43 6/11 source/lib/core/demangler.hpp
93.2% 68/73 7/8 source/lib/core/trace_cache/buffer_storage.hpp
94.3% 133/141 30/32 source/lib/backends/rocprofiler_sdk/backend.hpp
94.4% 17/18 3/3 source/bin/rocprof-sys-avail/component_categories.hpp
94.7% 36/38 7/7 build/coverage/_deps/spdlog-src/include/spdlog/logger.h
94.7% 54/57 6/8 source/lib/rocprof-sys/library/components/pthread_mutex_gotcha.hpp
95.0% 19/20 4/6 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/string_concat.hpp
95.4% 62/65 1/5 source/lib/core/trace_cache/cacheable.hpp
95.7% 22/23 4/6 source/lib/common/synchronized.hpp
95.8% 23/24 2/4 source/lib/common/pci_bdf.hpp
95.9% 162/169 19/22 source/lib/rocprof-sys/library/components/ucx_gotcha.hpp
96.2% 25/26 1/2 source/lib/common/delimit.hpp
96.5% 82/85 11/12 source/lib/core/state.hpp
96.8% 30/31 3/4 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/sample.hpp
96.8% 151/156 16/16 source/lib/rocprof-sys/library/rocprofiler-sdk/domain_service.hpp
96.9% 31/32 2/2 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_dropped_events.hpp
97.3% 73/75 6/6 source/lib/core/common_types.hpp
97.3% 73/75 3/3 source/lib/core/perfetto/packet_framing.hpp
97.4% 38/39 3/3 source/lib/core/utility.cpp
97.5% 39/40 6/7 source/lib/core/trace_cache/rocpd_helpers.hpp
97.7% 85/87 11/12 source/lib/core/control/triggers/roctx.cpp
97.8% 44/45 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/page_fault.hpp
97.8% 45/46 7/7 source/lib/rocprof-sys/library/rocprofiler-sdk/rccl_internal.hpp
97.9% 47/48 3/3 source/lib/rocprof-sys/library/pmc/collectors/nic/device.hpp
98.1% 51/52 7/7 source/lib/rocprof-sys/library/pmc/device_providers/amd_smi/provider.hpp
98.7% 78/79 15/16 source/lib/backends/amd_smi/backend.hpp
99.0% 98/99 16/16 source/lib/core/control/session.cpp
100.0% 14/14 1/1 build/coverage/_deps/fmt-src/include/fmt/ostream.h
100.0% 6/6 0/3 build/coverage/_deps/nlohmann_json-src/include/nlohmann/adl_serializer.hpp
100.0% 2/2 0/1 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/input/position_t.hpp
100.0% 2/2 0/1 build/coverage/_deps/spdlog-src/include/spdlog/details/backtracer.h
100.0% 2/2 0/1 build/coverage/_deps/spdlog-src/include/spdlog/details/circular_q.h
100.0% 1/1 0/1 build/coverage/include/profiler-hub/reader_types.hpp
100.0% 1/1 0/1 source/bin/common/json_config.hpp
100.0% 39/39 2/2 source/bin/rocprof-sys-avail/get_availability.hpp
100.0% 10/10 1/1 source/bin/rocprof-sys-avail/get_categories.hpp
100.0% 4/4 1/1 source/bin/rocprof-sys-avail/info_type.cpp
100.0% 107/107 13/14 source/lib/backends/amd_smi/device.hpp
100.0% 7/7 0/1 source/lib/backends/amd_smi/gpu_types.hpp
100.0% 1/1 0/1 source/lib/backends/rocprofiler_sdk/types.hpp
100.0% 12/12 1/1 source/lib/common/join.hpp
100.0% 14/14 2/4 source/lib/common/units/data_size.hpp
100.0% 11/11 2/3 source/lib/common/units/frequency.hpp
100.0% 11/11 2/3 source/lib/common/units/power.hpp
100.0% 5/5 0/3 source/lib/common/units/quantity.hpp
100.0% 8/8 0/2 source/lib/common/version.hpp
100.0% 2/2 1/2 source/lib/core/agent_manager.hpp
100.0% 15/15 3/5 source/lib/core/control/session.hpp
100.0% 3/3 0/2 source/lib/core/control/triggers/roctx.hpp
100.0% 1/1 0/1 source/lib/core/output_file_registry.hpp
100.0% 1/1 0/1 source/lib/core/perfetto/category_registry.hpp
100.0% 1/1 0/1 source/lib/core/perfetto/engine.hpp
100.0% 7/7 0/1 source/lib/core/perfetto/sinks/file_output.hpp
100.0% 1/1 0/1 source/lib/core/perfetto/sinks/per_pid_file_sink.hpp
100.0% 2/2 0/1 source/lib/core/perfetto/sinks/single_file_sink.hpp
100.0% 2/2 0/1 source/lib/core/perfetto/sinks/trace_sink.hpp
100.0% 6/6 2/2 source/lib/core/progress/tracker.cpp
100.0% 1/1 0/1 source/lib/core/progress/tracker.hpp
100.0% 4/4 0/3 source/lib/core/trace_cache/data_types.hpp
100.0% 9/9 3/3 source/lib/core/trace_cache/type_registry.hpp
100.0% 24/24 4/5 source/lib/core/trace_cache/unified_memory_processor.hpp
100.0% 5/5 2/2 source/lib/core/track_registry.cpp
100.0% 4/4 0/2 source/lib/core/track_registry.hpp
100.0% 10/10 1/1 source/lib/logger/logger.cpp
100.0% 9/9 0/2 source/lib/rocprof-sys/library/pmc/collectors/gpu/types.hpp
100.0% 20/20 4/4 source/lib/rocprof-sys/library/pmc/collectors/nic/perfetto_policy.hpp
100.0% 2/2 0/2 source/lib/rocprof-sys/library/pmc/common/types.hpp
100.0% 41/41 5/6 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered_domain.hpp
100.0% 11/11 1/2 source/lib/rocprof-sys/library/rocprofiler-sdk/callback_domain.hpp
100.0% 27/27 3/4 source/lib/rocprof-sys/library/rocprofiler-sdk/domain_registry.hpp
100.0% 33/33 3/4 source/lib/rocprof-sys/library/rocprofiler-sdk/marker_writer.hpp

Distribution

Range Files
0-20% 189
20-50% 12
50-80% 37
80-100% 101

E2E Tests

Code Coverage: e2e-tests

Lines: 🟡 63.8% — 23,752/37,210 across 339 files
Functions: 🟡 64.4% — 2,463/3,825

🔴 0-20% (49 files)
Lines Functions File
0.0% 0/10 0/2 build/coverage/_deps/nlohmann_json-src/include/nlohmann/byte_container_with_subtype.hpp
0.0% 0/1 0/1 build/coverage/_deps/spdlog-src/include/spdlog/details/log_msg_buffer.h
0.0% 0/1 0/1 build/coverage/_deps/spdlog-src/include/spdlog/sinks/ansicolor_sink.h
0.0% 0/2 0/1 build/coverage/include/profiler-hub/shared_types.hpp
0.0% 0/102 0/6 source/bin/rocprof-sys-avail/hw_counter_query.cpp
0.0% 0/24 0/1 source/lib/backends/amd_smi/wrapper.hpp
0.0% 0/166 0/2 source/lib/core/agent_info.hpp
0.0% 0/84 0/5 source/lib/core/cpu.cpp
0.0% 0/1 0/1 source/lib/core/cpu.hpp
0.0% 0/54 0/6 source/lib/core/dynamic_library.cpp
0.0% 0/28 0/7 source/lib/core/exception.cpp
0.0% 0/160 0/12 source/lib/core/gpu_metrics.cpp
0.0% 0/8 0/3 source/lib/core/sdk/tracing-config-deps.hpp
0.0% 0/6 0/2 source/lib/rocprof-sys-rt/src/RTsignal.c
0.0% 0/11 0/2 source/lib/rocprof-sys-rt/src/RTthread-x86-64.c
0.0% 0/3 0/1 source/lib/rocprof-sys-rt/src/RTthread.c
0.0% 0/1 0/1 source/lib/rocprof-sys/library/components/exit_gotcha.hpp
0.0% 0/1 0/1 source/lib/rocprof-sys/library/components/kill_gotcha.hpp
0.0% 0/52 0/9 source/lib/rocprof-sys/library/pmc/collectors/cpu/perfetto_policy.hpp
0.0% 0/116 0/6 source/lib/rocprof-sys/library/pmc/collectors/gpu/cache_policy.hpp
0.0% 0/224 0/36 source/lib/rocprof-sys/library/pmc/collectors/gpu/perfetto_policy.hpp
0.0% 0/25 0/3 source/lib/rocprof-sys/library/pmc/collectors/gpu/sample.hpp
0.0% 0/33 0/3 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/cache_policy.hpp
0.0% 0/39 0/7 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/perfetto_policy.hpp
0.0% 0/16 0/2 source/lib/rocprof-sys/library/pmc/collectors/nic/sample.hpp
0.0% 0/2 0/1 source/lib/rocprof-sys/library/rocm.cpp
0.0% 0/109 0/13 source/lib/rocprof-sys/library/rocprofiler-sdk/counters.cpp
0.0% 0/17 0/6 source/lib/rocprof-sys/library/rocprofiler-sdk/counters.hpp
0.0% 0/129 0/9 source/lib/rocprof-sys/library/rocprofiler-sdk/fwd.cpp
0.0% 0/136 0/13 source/lib/rocprof-sys/library/rocprofiler-sdk/rccl.cpp
0.0% 0/108 0/10 source/lib/rocprof-sys/library/rocprofiler-sdk/roctx_client.cpp
0.0% 0/3 0/1 source/lib/rocprof-sys/library/tracing/annotation.cpp
0.0% 0/45 0/4 source/lib/rocprof-sys/library/tracing/annotation.hpp
0.0% 0/439 0/45 source/python/libpyrocprofsys.cpp
0.6% 1/169 1/13 source/lib/core/perfetto.cpp
4.8% 61/1264 12/89 source/lib/rocprof-sys/library/rocprofiler-sdk.cpp
4.9% 8/164 2/31 source/lib/rocprof-sys/library/components/vaapi_gotcha.cpp
6.9% 31/449 6/53 build/coverage/_deps/fmt-src/include/fmt/chrono.h
7.1% 1/14 0/1 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/iterators/primitive_iterator.hpp
8.3% 2/24 1/2 source/lib/core/amd_smi.cpp
8.3% 3/36 1/9 source/lib/rocprof-sys/library/rocprofiler-sdk/marker_writer.cpp
8.8% 3/34 0/7 source/lib/rocprof-sys/library/rocprofiler-sdk/fwd.hpp
13.6% 38/280 7/31 source/lib/rocprof-sys-rt/src/RTcommon.c
13.8% 4/29 1/4 source/lib/rocprof-sys-rt/src/RTheap-linux.c
14.2% 30/212 4/22 source/lib/rocprof-sys-rt/src/RTlinux.c
16.2% 12/74 4/16 source/lib/rocprof-sys/regions.cpp
16.7% 4/24 0/2 source/lib/backends/rocprofiler_sdk/wrapper.hpp
18.0% 32/178 6/23 source/lib/core/gpu.cpp
18.8% 6/32 0/6 source/lib/rocprof-sys/library/rocprofiler-sdk/types.hpp
🟠 20-50% (25 files)
Lines Functions File
23.2% 192/829 9/32 source/lib/core/trace_cache/rocpd_processor.cpp
23.6% 122/516 24/71 source/lib/core/trace_cache/metadata_registry.cpp
23.8% 19/80 3/5 source/lib/core/perf.cpp
27.8% 27/97 4/8 source/lib/rocprof-sys-rt/src/RTposix.c
30.9% 242/784 32/102 source/lib/core/trace_cache/perfetto_processor.cpp
31.4% 54/172 5/10 source/lib/rocprof-sys/library/pmc/collectors/common/settings.hpp
32.1% 52/162 7/17 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/input/json_sax.hpp
35.1% 423/1206 43/96 build/coverage/_deps/fmt-src/include/fmt/format.h
35.7% 30/84 10/20 source/lib/rocprof-sys/api.cpp
35.7% 10/28 3/6 source/lib/rocprof-sys/library/components/exit_gotcha.cpp
37.1% 39/105 5/11 source/lib/rocprof-sys/library/causal/components/blocking_gotcha.cpp
38.5% 5/13 2/3 source/lib/rocprof-sys/library/components/kill_gotcha.cpp
38.8% 31/80 1/2 source/bin/rocprof-sys-causal/rocprof-sys-causal.cpp
40.3% 195/484 14/17 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/input/lexer.hpp
40.5% 17/42 5/12 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/exceptions.hpp
41.3% 26/63 7/12 source/lib/core/agent_manager.cpp
43.8% 21/48 6/9 source/lib/core/perfetto/emitter.hpp
44.4% 4/9 1/3 source/lib/rocprof-sys/library/components/backtrace_timestamp.cpp
45.0% 27/60 6/16 source/lib/rocprof-sys/library/coverage/impl.hpp
45.6% 72/158 3/7 source/bin/rocprof-sys-instrument/info.hpp
46.2% 42/91 2/6 source/lib/rocprof-sys/timeout.cpp
47.7% 31/65 3/4 source/lib/rocprof-sys-rt/src/RTheap.c
47.7% 52/109 12/30 source/lib/rocprof-sys/library/tracing.hpp
48.3% 14/29 5/7 source/lib/core/perfetto/emitter.cpp
48.5% 178/367 16/30 source/lib/rocprof-sys/library/components/comm_data.cpp
🟡 50-80% (66 files)
Lines Functions File
50.0% 8/16 2/4 source/lib/binary/address_multirange.cpp
50.0% 7/14 2/6 source/lib/rocprof-sys-causal-api/causal_api.cpp
50.0% 1/2 0/1 source/lib/rocprof-sys/library/components/numa_gotcha.hpp
50.0% 1/2 0/1 source/lib/rocprof-sys/library/components/vaapi_gotcha.hpp
50.0% 1/2 0/1 source/lib/rocprof-sys/library/pmc/collectors/nic/types.hpp
50.0% 1/2 0/1 source/lib/rocprof-sys/library/thread_info.hpp
50.0% 4/8 1/2 source/lib/rocprof-sys/progress.cpp
52.0% 13/25 2/3 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/gpu_perf_counter_traits.hpp
52.4% 132/252 27/37 source/lib/rocprof-sys/library/kokkosp.cpp
53.2% 41/77 0/1 source/lib/core/trace_cache/sample_processor.hpp
55.0% 22/40 4/6 build/coverage/_deps/fmt-src/include/fmt/ranges.h
56.2% 172/306 9/11 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/output/serializer.hpp
56.4% 44/78 8/19 source/lib/rocprof-sys/library/components/numa_gotcha.cpp
57.5% 23/40 1/3 source/lib/common/invoke.hpp
58.3% 14/24 3/8 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/output/output_adapters.hpp
58.3% 7/12 0/4 build/coverage/_deps/spdlog-src/include/spdlog/common.h
59.8% 98/164 15/20 source/lib/rocprof-sys/library/pmc/sampler.cpp
60.0% 63/105 5/9 source/bin/common/argument_registration.hpp
60.0% 3/5 1/1 source/lib/core/agent.hpp
60.7% 130/214 12/30 source/lib/rocprof-sys/library/components/backtrace_metrics.cpp
61.8% 42/68 5/8 source/lib/rocprof-sys/library/components/fork_gotcha.cpp
62.5% 50/80 13/18 source/lib/core/binary/address_range.cpp
62.8% 49/78 4/5 source/lib/core/trace_cache/discovery.cpp
63.1% 70/111 7/10 source/lib/core/progress/bar.cpp
63.9% 161/252 24/32 source/lib/rocprof-sys/library/perf.cpp
65.3% 311/476 23/39 build/coverage/_deps/fmt-src/include/fmt/base.h
65.4% 34/52 4/4 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/conversions/from_json.hpp
66.0% 289/438 34/41 build/coverage/_deps/nlohmann_json-src/include/nlohmann/json.hpp
66.1% 37/56 3/4 source/lib/core/mproc.cpp
66.2% 47/71 5/5 source/lib/rocprof-sys/library/pmc/collectors/gpu/gpu_traits.hpp
66.4% 87/131 4/5 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/input/parser.hpp
66.9% 79/118 15/20 source/lib/rocprof-sys/library/runtime.cpp
68.8% 22/32 3/8 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/types.hpp
69.0% 462/670 33/45 source/bin/rocprof-sys-instrument/details.cpp
69.3% 374/540 40/85 source/lib/rocprof-sys-dl/dl.cpp
70.2% 40/57 4/6 source/lib/core/perfetto.hpp
70.3% 64/91 5/7 source/bin/rocprof-sys-instrument/function_signature.cpp
71.1% 69/97 8/8 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/iterators/iter_impl.hpp
71.4% 10/14 1/2 source/lib/core/containers/aligned_static_vector.hpp
71.4% 35/49 5/8 source/lib/rocprof-sys/library/causal/components/unblocking_gotcha.cpp
71.8% 122/170 16/22 source/lib/rocprof-sys/library/components/mpi_gotcha.cpp
72.2% 13/18 2/6 source/lib/rocprof-sys/library/rocprofiler-sdk/roctx_client.hpp
72.7% 24/33 5/7 source/lib/rocprof-sys/library/causal/components/causal_gotcha.cpp
73.4% 701/955 46/58 source/lib/rocprof-sys/library/sampling.cpp
73.7% 28/38 6/7 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/iterators/iteration_proxy.hpp
74.0% 409/553 30/33 source/lib/rocprof-sys/library/causal/data.cpp
74.1% 226/305 16/17 source/bin/common/preset_registry.cpp
74.4% 32/43 3/3 source/lib/core/perfetto/sinks/file_output.cpp
74.5% 35/47 4/6 source/lib/rocprof-sys/library/pmc/collectors/cpu/cpu_traits.hpp
75.0% 15/20 5/5 source/bin/rocprof-sys-instrument/function_signature.hpp
75.0% 3/4 0/1 source/lib/backends/amd_smi/nic_types.hpp
75.0% 18/24 4/5 source/lib/rocprof-sys/library/causal/sample_data.cpp
75.0% 3/4 1/2 source/lib/rocprof-sys/library/rocprofiler-sdk/callback/code_object.hpp
75.4% 389/516 30/40 source/bin/common/json_config.cpp
75.4% 1158/1535 51/87 source/bin/rocprof-sys-instrument/rocprof-sys-instrument.cpp
75.6% 90/119 11/12 source/lib/core/trace_cache/post_processor.cpp
76.5% 407/532 40/41 source/bin/rocprof-sys-instrument/module_function.cpp
76.6% 49/64 5/6 source/bin/rocprof-sys-instrument/log.cpp
76.8% 53/69 5/6 source/lib/binary/link_map.cpp
77.0% 322/418 34/36 source/bin/common/common_utils.cpp
77.3% 17/22 3/3 source/lib/common/static_object.hpp
77.9% 113/145 26/31 source/lib/rocprof-sys/library/thread_data.hpp
78.0% 209/268 23/25 source/lib/rocprof-sys/library/causal/sampling.cpp
79.1% 201/254 24/28 source/bin/common/tool_runner.cpp
79.2% 19/24 2/2 source/lib/core/node_info.cpp
79.9% 211/264 20/22 source/bin/rocprof-sys-instrument/internal_libs.cpp
🟢 80-100% (199 files)
Lines Functions File
80.0% 4/5 0/1 source/bin/rocprof-sys-instrument/log.hpp
80.0% 80/100 10/10 source/lib/core/perfetto/engine_impl.hpp
80.3% 61/76 9/10 source/lib/rocprof-sys/library/pmc/device_providers/rocprofiler_sdk/provider.hpp
81.1% 1397/1722 275/301 source/lib/core/config.cpp
81.2% 69/85 17/22 source/lib/rocprof-sys/library/causal/components/progress_point.cpp
81.2% 13/16 1/1 source/lib/rocprof-sys-dl/main.c
81.4% 131/161 24/27 source/lib/rocprof-sys/library/thread_info.cpp
81.4% 175/215 21/24 source/bin/rocprof-sys-avail/common.cpp
82.0% 41/50 5/5 source/lib/core/perfetto/cached_perfetto_session.cpp
83.1% 556/669 35/40 source/lib/rocprof-sys/library.cpp
83.3% 25/30 3/6 source/lib/core/trace_cache/metadata_registry.hpp
83.4% 131/157 12/12 source/bin/rocprof-sys-instrument/rocprof-sys-instrument.hpp
84.2% 16/19 3/5 source/lib/rocprof-sys/library/components/comm_data.hpp
84.3% 86/102 8/9 source/lib/binary/dwarf_entry.cpp
84.4% 54/64 4/4 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/page_migrate.hpp
84.5% 321/380 18/29 source/lib/rocprof-sys/library/causal/experiment.cpp
84.7% 83/98 4/4 source/lib/core/perfetto/sinks/single_file_sink.cpp
84.8% 134/158 17/18 source/lib/binary/symbol.cpp
84.8% 56/66 8/8 source/lib/rocprof-sys/library/pmc/collectors/base/collector.hpp
85.1% 74/87 10/12 source/lib/logger/logger.hpp
85.4% 76/89 14/16 source/lib/rocprof-sys/library/causal/delay.cpp
85.5% 47/55 4/4 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/device.hpp
85.7% 6/7 1/1 source/lib/core/perfetto/sinks/append_mode.hpp
86.0% 80/93 5/7 source/bin/rocprof-sys-instrument/module_function.hpp
87.0% 47/54 3/3 source/lib/core/trace_cache/cache_manager.cpp
87.3% 137/157 11/14 source/lib/backends/procfs/backend.hpp
87.5% 391/447 35/47 source/bin/rocprof-sys-causal/impl.cpp
87.5% 42/48 4/5 source/lib/core/output_file_registry.cpp
87.6% 99/113 10/11 source/lib/rocprof-sys/library/tracing.cpp
88.1% 251/285 29/33 source/lib/common/environment.hpp
88.8% 127/143 10/10 source/lib/rocprof-sys/library/coverage.cpp
89.1% 49/55 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_page_migrate.hpp
89.2% 223/250 23/33 source/lib/core/sdk/tracing-config.hpp
89.3% 756/847 58/73 source/lib/core/argparse.cpp
89.8% 220/245 15/16 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/conversions/to_chars.hpp
90.0% 9/10 1/1 source/lib/binary/scope_filter.cpp
90.0% 54/60 4/4 source/lib/core/trace_cache/buffer_storage.cpp
90.0% 9/10 1/1 source/lib/rocprof-sys/library/thread_deleter.cpp
90.1% 64/71 9/11 source/lib/rocprof-sys/library/components/backtrace.cpp
90.1% 64/71 7/10 source/lib/rocprof-sys/library/components/callchain.cpp
90.2% 240/266 21/30 source/lib/core/trace_cache/sample_type.hpp
90.4% 235/260 11/12 source/bin/rocprof-sys-avail/generate_config.cpp
90.5% 38/42 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_page_fault.hpp
90.5% 38/42 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_queue.hpp
90.7% 243/268 19/20 source/lib/core/trace_cache/unified_memory_processor.cpp
90.9% 10/11 1/2 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/json_ref.hpp
90.9% 20/22 2/2 source/lib/common/setup.hpp
90.9% 40/44 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/queue.hpp
91.3% 21/23 4/5 source/lib/core/containers/static_vector.hpp
91.3% 306/335 18/20 source/lib/rocprof-sys/library/components/pthread_create_gotcha.cpp
91.5% 107/117 5/5 source/lib/binary/analysis.cpp
91.5% 43/47 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_unmap_from_gpu.hpp
91.7% 11/12 2/2 source/lib/core/perfetto/session_backend.hpp
91.9% 102/111 8/8 source/lib/rocprof-sys/library/pmc/collectors/cpu/device.hpp
92.2% 47/51 7/7 source/lib/core/control/clocks/posix.hpp
92.6% 163/176 9/9 source/lib/rocprof-sys/library/pmc/collectors/gpu/device.hpp
92.8% 873/941 41/48 source/bin/rocprof-sys-avail/avail.cpp
92.9% 13/14 2/2 source/lib/rocprof-sys/library/pmc/device_providers/procfs/provider.hpp
93.1% 27/29 3/5 source/lib/rocprof-sys/library/coverage.hpp
93.2% 68/73 7/8 source/lib/core/trace_cache/buffer_storage.hpp
93.3% 111/119 16/17 source/lib/core/perfetto/engine.cpp
93.3% 14/15 3/3 source/lib/core/perfetto/sinks/per_pid_file_sink.cpp
93.4% 239/256 28/32 source/lib/rocprof-sys/library/components/category_region.hpp
93.9% 31/33 6/6 source/lib/core/mpi.hpp
94.1% 32/34 7/9 source/lib/rocprof-sys/library/components/pthread_gotcha.cpp
94.2% 114/121 11/11 source/lib/rocprof-sys/library/process_sampler.cpp
94.3% 133/141 30/32 source/lib/backends/rocprofiler_sdk/backend.hpp
94.4% 17/18 3/3 source/bin/rocprof-sys-avail/component_categories.hpp
94.7% 36/38 7/7 build/coverage/_deps/spdlog-src/include/spdlog/logger.h
95.0% 19/20 4/6 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/string_concat.hpp
95.1% 116/122 15/16 source/lib/common/path.hpp
95.1% 58/61 7/8 source/lib/rocprof-sys/library/pmc/collectors/cpu/sample.hpp
95.4% 62/65 1/5 source/lib/core/trace_cache/cacheable.hpp
95.4% 186/195 16/18 source/lib/rocprof-sys/library/components/shmem_gotcha.hpp
95.7% 44/46 10/12 source/lib/core/containers/stable_vector.hpp
95.7% 45/47 2/2 source/lib/core/trace_cache/storage_parser.hpp
95.8% 23/24 2/4 source/lib/common/pci_bdf.hpp
95.9% 162/169 19/22 source/lib/rocprof-sys/library/components/ucx_gotcha.hpp
95.9% 70/73 6/6 source/lib/rocprof-sys/library/causal/components/backtrace.cpp
96.2% 25/26 1/2 source/lib/common/delimit.hpp
96.6% 56/58 7/7 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/conversions/to_json.hpp
96.7% 59/61 9/9 source/lib/core/utility.hpp
96.8% 30/31 3/4 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/sample.hpp
96.8% 151/156 16/16 source/lib/rocprof-sys/library/rocprofiler-sdk/domain_service.hpp
96.9% 62/64 14/14 source/lib/core/trace_cache/data_types.cpp
96.9% 31/32 2/2 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_dropped_events.hpp
97.0% 32/33 4/4 source/lib/core/perfetto/counter_track.hpp
97.3% 73/75 6/6 source/lib/core/common_types.hpp
97.3% 73/75 3/3 source/lib/core/perfetto/packet_framing.hpp
97.4% 38/39 3/3 source/lib/core/utility.cpp
97.5% 39/40 6/7 source/lib/core/trace_cache/rocpd_helpers.hpp
97.7% 85/87 11/12 source/lib/core/control/triggers/roctx.cpp
97.8% 44/45 3/3 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/page_fault.hpp
97.8% 45/46 7/7 source/lib/rocprof-sys/library/rocprofiler-sdk/rccl_internal.hpp
97.9% 47/48 3/3 source/lib/rocprof-sys/library/pmc/collectors/nic/device.hpp
98.0% 147/150 9/10 source/lib/common/md5sum.hpp
98.1% 51/52 7/7 source/lib/rocprof-sys/library/pmc/device_providers/amd_smi/provider.hpp
98.2% 56/57 6/8 source/lib/rocprof-sys/library/components/pthread_mutex_gotcha.hpp
98.4% 60/61 10/11 source/lib/common/string_utility.hpp
98.7% 78/79 15/16 source/lib/backends/amd_smi/backend.hpp
99.0% 98/99 16/16 source/lib/core/control/session.cpp
100.0% 14/14 1/1 build/coverage/_deps/fmt-src/include/fmt/ostream.h
100.0% 6/6 0/3 build/coverage/_deps/nlohmann_json-src/include/nlohmann/adl_serializer.hpp
100.0% 38/38 6/7 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/input/input_adapters.hpp
100.0% 2/2 0/1 build/coverage/_deps/nlohmann_json-src/include/nlohmann/detail/input/position_t.hpp
100.0% 2/2 0/1 build/coverage/_deps/spdlog-src/include/spdlog/details/backtracer.h
100.0% 2/2 0/1 build/coverage/_deps/spdlog-src/include/spdlog/details/circular_q.h
100.0% 1/1 0/1 build/coverage/include/profiler-hub/reader_types.hpp
100.0% 10/10 1/2 build/coverage/include/profiler-hub/writer_types.hpp
100.0% 31/31 4/5 source/bin/common/common_utils.hpp
100.0% 1/1 0/1 source/bin/common/json_config.hpp
100.0% 59/59 6/6 source/bin/rocprof-sys-avail/avail.hpp
100.0% 39/39 2/2 source/bin/rocprof-sys-avail/get_availability.hpp
100.0% 10/10 1/1 source/bin/rocprof-sys-avail/get_categories.hpp
100.0% 4/4 1/1 source/bin/rocprof-sys-avail/info_type.cpp
100.0% 9/9 0/1 source/bin/rocprof-sys-avail/info_type.hpp
100.0% 2/2 1/1 source/bin/rocprof-sys-run/rocprof-sys-run.cpp
100.0% 2/2 1/1 source/bin/rocprof-sys-sample/rocprof-sys-sample.cpp
100.0% 107/107 13/14 source/lib/backends/amd_smi/device.hpp
100.0% 7/7 0/1 source/lib/backends/amd_smi/gpu_types.hpp
100.0% 1/1 0/1 source/lib/backends/rocprofiler_sdk/types.hpp
100.0% 9/9 0/1 source/lib/binary/address_multirange.hpp
100.0% 7/7 1/1 source/lib/binary/binary_info.hpp
100.0% 1/1 0/1 source/lib/binary/dwarf_entry.hpp
100.0% 3/3 0/1 source/lib/binary/link_map.hpp
100.0% 5/5 1/2 source/lib/binary/scope_filter.hpp
100.0% 8/8 7/8 source/lib/binary/symbol.hpp
100.0% 9/9 2/2 source/lib/common/env_vars.hpp
100.0% 12/12 1/1 source/lib/common/join.hpp
100.0% 23/23 5/6 source/lib/common/synchronized.hpp
100.0% 14/14 2/4 source/lib/common/units/data_size.hpp
100.0% 11/11 2/3 source/lib/common/units/frequency.hpp
100.0% 11/11 2/3 source/lib/common/units/power.hpp
100.0% 5/5 0/3 source/lib/common/units/quantity.hpp
100.0% 8/8 0/2 source/lib/common/version.hpp
100.0% 2/2 1/2 source/lib/core/agent_manager.hpp
100.0% 5/5 0/2 source/lib/core/argparse.hpp
100.0% 9/9 1/3 source/lib/core/binary/address_range.hpp
100.0% 21/21 6/6 source/lib/core/categories.cpp
100.0% 11/11 11/11 source/lib/core/components/fwd.hpp
100.0% 26/26 3/3 source/lib/core/config.hpp
100.0% 55/55 6/7 source/lib/core/config/trace_period_config.hpp
100.0% 11/11 1/3 source/lib/core/containers/c_array.hpp
100.0% 1/1 0/1 source/lib/core/containers/operators.hpp
100.0% 15/15 3/3 source/lib/core/control/clocks/steady.cpp
100.0% 2/2 2/2 source/lib/core/control/clocks/steady.hpp
100.0% 15/15 3/5 source/lib/core/control/session.hpp
100.0% 3/3 0/2 source/lib/core/control/triggers/roctx.hpp
100.0% 46/46 7/7 source/lib/core/control/triggers/time_window.hpp
100.0% 43/43 7/11 source/lib/core/demangler.hpp
100.0% 2/2 2/2 source/lib/core/node_info.hpp
100.0% 1/1 0/1 source/lib/core/output_file_registry.hpp
100.0% 1/1 0/1 source/lib/core/perfetto/category_registry.hpp
100.0% 1/1 0/1 source/lib/core/perfetto/engine.hpp
100.0% 7/7 0/1 source/lib/core/perfetto/sinks/file_output.hpp
100.0% 1/1 0/1 source/lib/core/perfetto/sinks/per_pid_file_sink.hpp
100.0% 2/2 0/1 source/lib/core/perfetto/sinks/single_file_sink.hpp
100.0% 2/2 0/1 source/lib/core/perfetto/sinks/trace_sink.hpp
100.0% 1/1 0/1 source/lib/core/progress/bar.hpp
100.0% 6/6 2/2 source/lib/core/progress/tracker.cpp
100.0% 1/1 0/1 source/lib/core/progress/tracker.hpp
100.0% 85/85 11/12 source/lib/core/state.hpp
100.0% 7/7 1/3 source/lib/core/trace_cache/cache_manager.hpp
100.0% 4/4 0/3 source/lib/core/trace_cache/data_types.hpp
100.0% 9/9 3/3 source/lib/core/trace_cache/type_registry.hpp
100.0% 24/24 4/5 source/lib/core/trace_cache/unified_memory_processor.hpp
100.0% 5/5 2/2 source/lib/core/track_registry.cpp
100.0% 4/4 0/2 source/lib/core/track_registry.hpp
100.0% 10/10 1/1 source/lib/logger/logger.cpp
100.0% 7/7 1/2 source/lib/rocprof-sys/library/causal/components/backtrace.hpp
100.0% 23/23 2/3 source/lib/rocprof-sys/library/causal/components/progress_point.hpp
100.0% 3/3 1/2 source/lib/rocprof-sys/library/causal/experiment.hpp
100.0% 4/4 1/1 source/lib/rocprof-sys/library/causal/selected_entry.cpp
100.0% 5/5 2/3 source/lib/rocprof-sys/library/causal/selected_entry.hpp
100.0% 1/1 1/1 source/lib/rocprof-sys/library/components/backtrace.hpp
100.0% 11/11 1/2 source/lib/rocprof-sys/library/components/backtrace_metrics.hpp
100.0% 4/4 0/2 source/lib/rocprof-sys/library/components/backtrace_timestamp.hpp
100.0% 1/1 1/1 source/lib/rocprof-sys/library/components/callchain.hpp
100.0% 8/8 2/2 source/lib/rocprof-sys/library/components/ensure_storage.hpp
100.0% 1/1 0/1 source/lib/rocprof-sys/library/components/fork_gotcha.hpp
100.0% 2/2 0/1 source/lib/rocprof-sys/library/components/mpi_gotcha.hpp
100.0% 533/533 12/12 source/lib/rocprof-sys/library/components/mpip.hpp
100.0% 5/5 0/1 source/lib/rocprof-sys/library/components/pthread_create_gotcha.hpp
100.0% 24/24 1/2 source/lib/rocprof-sys/library/components/pthread_mutex_gotcha_policy.hpp
100.0% 11/11 0/3 source/lib/rocprof-sys/library/perf.hpp
100.0% 14/14 0/1 source/lib/rocprof-sys/library/pmc/collectors/common/collector_slice.hpp
100.0% 66/66 5/5 source/lib/rocprof-sys/library/pmc/collectors/cpu/cache_policy.hpp
100.0% 3/3 0/2 source/lib/rocprof-sys/library/pmc/collectors/cpu/types.hpp
100.0% 9/9 0/2 source/lib/rocprof-sys/library/pmc/collectors/gpu/types.hpp
100.0% 20/20 4/4 source/lib/rocprof-sys/library/pmc/collectors/nic/perfetto_policy.hpp
100.0% 2/2 0/2 source/lib/rocprof-sys/library/pmc/common/types.hpp
100.0% 15/15 2/3 source/lib/rocprof-sys/library/process_sampler.hpp
100.0% 41/41 5/6 source/lib/rocprof-sys/library/rocprofiler-sdk/buffered_domain.hpp
100.0% 11/11 1/2 source/lib/rocprof-sys/library/rocprofiler-sdk/callback_domain.hpp
100.0% 27/27 3/4 source/lib/rocprof-sys/library/rocprofiler-sdk/domain_registry.hpp
100.0% 33/33 3/4 source/lib/rocprof-sys/library/rocprofiler-sdk/marker_writer.hpp
100.0% 2/2 0/1 source/lib/rocprof-sys/library/runtime.hpp
100.0% 10/10 3/3 source/lib/rocprof-sys/library/thread_data_growth.hpp
100.0% 5/5 1/1 source/lib/rocprof-sys/library/thread_deleter.hpp

Distribution

Range Files
0-20% 49
20-50% 25
50-80% 66
80-100% 199

@marantic-amd marantic-amd changed the title feat(trace-control): Add basic foundation for unified trace control in rocprofiler-systems feat(trace-control): Add basic foundation for unified trace control Jul 20, 2026
@marantic-amd
marantic-amd force-pushed the users/marantic-amd/control-session-foundation branch from a340191 to ab0fff4 Compare July 20, 2026 11:46
@marantic-amd
marantic-amd marked this pull request as ready for review July 20, 2026 14:45
@marantic-amd
marantic-amd requested review from a team and jrmadsen as code owners July 20, 2026 14:45

@mradosav-amd mradosav-amd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I get the idea. Please address those few stuff.

@github-actions

github-actions Bot commented Jul 23, 2026 •

Copy link
Copy Markdown
Contributor

rocprofiler-systems CI Summary

Test Results (for commit 61c7caf)

Workflow jobs covered: 36

Workflow Runs Avg Test Time Tests Skipped Failed
Ubuntu 22.04 5 29m 44s 2,585 105 0
Ubuntu 24.04 5 31m 48s 2,605 115 0
Debian 4 33m 22s 2,180 82 0
RHEL 12 34m 43s 6,204 307 0
System deps 10 31m 12s 5,394 226 0
Total 36 32m 29s 18,968 835 0

Failed Tests

No failed tests reported.

Sanitizers

Thread Undefined Address
Passed Passed Passed

@marantic-amd
marantic-amd force-pushed the users/marantic-amd/control-session-foundation branch from 1b9b056 to d2e6341 Compare July 24, 2026 08:08
@dgaliffiAMD dgaliffiAMD changed the title feat(trace-control): Add basic foundation for unified trace control feat(rocprofiler-systems): Add basic foundation for unified trace control Aug 7, 2026
@marantic-amd
marantic-amd force-pushed the users/marantic-amd/control-session-foundation branch from 3d03fe5 to 9e4aeac Compare August 11, 2026 11:40
@dgaliffiAMD
dgaliffiAMD force-pushed the users/marantic-amd/control-session-foundation branch from 9e4aeac to 2ef6c8e Compare August 11, 2026 20:01

@mradosav-amd mradosav-amd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just some minor changes. other stuff look ok

@marantic-amd
marantic-amd force-pushed the users/marantic-amd/control-session-foundation branch from 60d526a to 31d2f1e Compare August 14, 2026 12:27
@kcossett-amd

kcossett-amd commented Aug 14, 2026 •

Copy link
Copy Markdown
Contributor

I've investigated the runtime-instrument/binary-rewrite failure. The condition fix (https://github.com/ROCm/rocm-systems/pull/9996/changes#diff-7aa9eb486d6498bd67d85737c680f982343d2304dcb9548367fbaebdd2f067d8R137) in #9996 enabled a previously-dead branch that now calls closeSymtab on the target binary before Dyninst opens it for the real rewrite. This is exposing an existing bug (the PR itself is NOT a problem).

Calling that is destructive: closeSymtab -> ~Symtab -> MappedFile::closeMappedFile -> munmap of the file image, but hte Elf_X object survives because Elf_X::end() is a no-op upstream. Dyninst's DwarfHandle::all_dwarf_handles cache is keyed only on filename, so the reopen returns the cached handle still pointing at the dead Elf_X. The crash lands when _fini triggers lazy type parsing and gelf_getehdr reads the unmapped image

Commenting out closeSymtab is a sound workaround for now (https://github.com/ROCm/rocm-systems/blame/develop/projects/rocprofiler-systems/source/bin/rocprof-sys-instrument/rocprof-sys-instrument.hpp#L152) (it leaks one Symtab, mostly harmless), but the real fix belongs in Dyninst... createDwarfHandle must not reuse a cached handle bound to a different Elf_X.

I tested the workaround and the problem vanishes. I'll have to get to work on the dyninst side of things.

FYI @marantic-amd

@dgaliffiAMD
dgaliffiAMD force-pushed the users/marantic-amd/control-session-foundation branch from 31d2f1e to adad49f Compare August 15, 2026 02:06
@marantic-amd
marantic-amd force-pushed the users/marantic-amd/control-session-foundation branch from adad49f to 44e31b9 Compare August 17, 2026 12:44
kcossett-amd added a commit that referenced this pull request Aug 17, 2026
## Motivation

<!-- Explain the purpose of this PR and the goals it aims to achieve.
-->

Since #9996 was merged, `trace-time-window` is failing in ASan:

See results from my investigation:
#8749 (comment)

I've investigated the runtime-instrument/binary-rewrite failure. The
condition fix
(https://github.com/ROCm/rocm-systems/pull/9996/changes#diff-7aa9eb486d6498bd67d85737c680f982343d2304dcb9548367fbaebdd2f067d8R137)
in #9996 enabled a
previously-dead branch that now calls closeSymtab on the target binary
before Dyninst opens it for the real rewrite. This is exposing an
existing bug (the PR itself is NOT a problem).

Calling that is destructive: closeSymtab -> ~Symtab ->
MappedFile::closeMappedFile -> munmap of the file image, but hte Elf_X
object survives because Elf_X::end() is a no-op upstream. Dyninst's
DwarfHandle::all_dwarf_handles cache is keyed only on filename, so the
reopen returns the cached handle still pointing at the dead Elf_X. The
crash lands when _fini triggers lazy type parsing and gelf_getehdr reads
the unmapped image

Commenting out closeSymtab is a sound workaround for now
(https://github.com/ROCm/rocm-systems/blame/develop/projects/rocprofiler-systems/source/bin/rocprof-sys-instrument/rocprof-sys-instrument.hpp#L152)
(it leaks one Symtab, mostly harmless), but the real fix belongs in
Dyninst... createDwarfHandle must not reuse a cached handle bound to a
different Elf_X.

I tested the workaround and the problem vanishes. I'll have to get to
work on the dyninst side of things.

## Why only ASan ?

Because without ASan the kernel hands the same address back, so the
dangling pointer accidentally lands on a valid, byte-identical remapping
of the same file. The bug is always present ... ASan just stops it from
being silently benign.

Here's the traced mmap/munmap sequence for the target binary, same
build, same command, ASLR disabled in both:
```
without ASan                                  with ASan
  MMAP   0x7ffff7f76000  (109648)               MMAP   0x7ffff22ab000  (109648)
  MMAP   0x7ffff7082000  (second open)          MMAP   0x7ffff2290000  (second open)
  MUNMAP 0x7ffff7f76000  <- closeSymtab         MUNMAP 0x7ffff22ab000  <- closeSymtab
  MMAP   0x7ffff7f76000  <- SAME ADDRESS        MMAP   0x7fffefc0d000  <- different address
```
Causes failure.

## Technical Details

<!-- Explain the changes along with any relevant GitHub links. -->

As a workaround, until I can handle dyninst, comment out `closeSymtab`.

(Yes there is a `close_symtab_file` function in our code, but that is
unused, so I will not touch it).

## Issue Tracking

<!-- Include a GitHub Issue and/or JIRA ID. Do not post any full JIRA
links here. -->
<!-- GitHub issue: #1234 -->
<!-- JIRA ID: EXAMPLECOMPONENT-1234 -->

JIRA ID: AIPROFSYST-730

## Test Plan

<!-- Explain any relevant testing done to verify this PR. -->

Local + workflows

## Test Result
Local: Error no longer observed, tests pass 100% of the time.
Workflows: See logs
<!-- Briefly summarize test outcomes. -->

<img width="877" height="127" alt="image"
src="https://github.com/user-attachments/assets/69d29547-cfc4-40d5-8266-be0ef4cd049c"
/>


## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.
@kcossett-amd

Copy link
Copy Markdown
Contributor

You'll need to rebase one more time to pick up the ASan workaround.

@marantic-amd
marantic-amd force-pushed the users/marantic-amd/control-session-foundation branch from 44e31b9 to 1404616 Compare August 19, 2026 08:33
marantic-amd and others added 26 commits September 17, 2026 09:19
A pause could disable thread setup or misdirect a perf event's signal owner, both permanent.
@marantic-amd
marantic-amd force-pushed the users/marantic-amd/control-session-foundation branch from 4d2b541 to 3579812 Compare September 17, 2026 07:40
@marantic-amd
marantic-amd merged commit 8f315de into develop Sep 17, 2026
94 of 96 checks passed
@marantic-amd
marantic-amd deleted the users/marantic-amd/control-session-foundation branch September 17, 2026 10:25
@systems-assistant

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants