Repository navigation
[rocprof-sys]: Replace CPU and sampling event timestamps with CLOCK_BOOTTIME to match GPU traces - #11667
Conversation
rocprofiler-systems CI SummaryTest Results (for commit
|
| Workflow | Runs | Avg Test Time | Tests | Skipped | Failed |
|---|---|---|---|---|---|
| Ubuntu 22.04 | 5 | 31m 07s | 2,685 | 105 | 0 |
| Ubuntu 24.04 | 5 | 29m 51s | 2,705 | 115 | 0 |
| Debian | 4 | 38m 30s | 2,260 | 82 | 0 |
| RHEL | 12 | 34m 38s | 6,444 | 307 | 0 |
| System deps | 10 | 28m 59s | 5,594 | 226 | 0 |
| Total | 36 | 32m 21s | 19,688 | 835 | 0 |
Failed Tests
No failed tests reported.
Sanitizers
| Thread | Undefined | Address |
|---|---|---|
| Passed | Passed | Passed |
✅ All Policy Checks Passed
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
| Lines | Functions | File |
|---|---|---|
| 0.0% 0/106 | 0/9 | source/bin/common/argument_registration.hpp |
| 0.0% 0/267 | 0/28 | source/bin/common/tool_runner.cpp |
| 0.0% 0/992 | 0/48 | source/bin/rocprof-sys-avail/avail.cpp |
| 0.0% 0/60 | 0/6 | source/bin/rocprof-sys-avail/avail.hpp |
| 0.0% 0/223 | 0/24 | source/bin/rocprof-sys-avail/common.cpp |
| 0.0% 0/18 | 0/3 | source/bin/rocprof-sys-avail/component_categories.hpp |
| 0.0% 0/274 | 0/12 | source/bin/rocprof-sys-avail/generate_config.cpp |
| 0.0% 0/39 | 0/2 | source/bin/rocprof-sys-avail/get_availability.hpp |
| 0.0% 0/11 | 0/1 | source/bin/rocprof-sys-avail/get_categories.hpp |
| 0.0% 0/106 | 0/6 | source/bin/rocprof-sys-avail/hw_counter_query.cpp |
| 0.0% 0/4 | 0/1 | source/bin/rocprof-sys-avail/info_type.cpp |
| 0.0% 0/9 | 0/1 | source/bin/rocprof-sys-avail/info_type.hpp |
| 0.0% 0/454 | 0/47 | source/bin/rocprof-sys-causal/impl.cpp |
| 0.0% 0/82 | 0/2 | source/bin/rocprof-sys-causal/rocprof-sys-causal.cpp |
| 0.0% 0/706 | 0/45 | source/bin/rocprof-sys-instrument/details.cpp |
| 0.0% 0/106 | 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/160 | 0/7 | source/bin/rocprof-sys-instrument/info.hpp |
| 0.0% 0/277 | 0/22 | source/bin/rocprof-sys-instrument/internal_libs.cpp |
| 0.0% 0/63 | 0/5 | source/bin/rocprof-sys-instrument/log.cpp |
| 0.0% 0/5 | 0/1 | source/bin/rocprof-sys-instrument/log.hpp |
| 0.0% 0/547 | 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/1588 | 0/87 | source/bin/rocprof-sys-instrument/rocprof-sys-instrument.cpp |
| 0.0% 0/166 | 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/46 | 0/2 | source/lib/backends/rocprofiler_sdk/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/126 | 0/5 | source/lib/binary/analysis.cpp |
| 0.0% 0/7 | 0/1 | source/lib/binary/binary_info.hpp |
| 0.0% 0/107 | 0/9 | source/lib/binary/dwarf_entry.cpp |
| 0.0% 0/1 | 0/1 | source/lib/binary/dwarf_entry.hpp |
| 0.0% 0/74 | 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/6 | 0/2 | source/lib/binary/scope_filter.hpp |
| 0.0% 0/162 | 0/18 | source/lib/binary/symbol.cpp |
| 0.0% 0/8 | 0/8 | source/lib/binary/symbol.hpp |
| 0.0% 0/10 | 0/2 | source/lib/common/env_vars.hpp |
| 0.0% 0/40 | 0/3 | source/lib/common/invoke.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/25 | 0/2 | source/lib/core/amd_smi.cpp |
| 0.0% 0/74 | 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/29 | 0/3 | source/lib/core/config.hpp |
| 0.0% 0/85 | 0/5 | source/lib/core/cpu.cpp |
| 0.0% 0/1 | 0/1 | source/lib/core/cpu.hpp |
| 0.0% 0/61 | 0/6 | source/lib/core/dynamic_library.cpp |
| 0.0% 0/28 | 0/7 | source/lib/core/exception.cpp |
| 0.0% 0/242 | 0/29 | source/lib/core/gpu.cpp |
| 0.0% 0/162 | 0/12 | source/lib/core/gpu_metrics.cpp |
| 0.0% 0/33 | 0/6 | source/lib/core/mpi.hpp |
| 0.0% 0/59 | 0/4 | source/lib/core/mproc.cpp |
| 0.0% 0/78 | 0/5 | source/lib/core/perf.cpp |
| 0.0% 0/52 | 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/32 | 0/7 | source/lib/core/perfetto/emitter.cpp |
| 0.0% 0/48 | 0/9 | source/lib/core/perfetto/emitter.hpp |
| 0.0% 0/9 | 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/823 | 0/104 | source/lib/core/trace_cache/perfetto_processor.cpp |
| 0.0% 0/1 | 0/1 | source/lib/core/trace_cache/perfetto_processor.hpp |
| 0.0% 0/122 | 0/12 | source/lib/core/trace_cache/post_processor.cpp |
| 0.0% 0/45 | 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/543 | 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/694 | 0/40 | source/lib/rocprof-sys/library.cpp |
| 0.0% 0/78 | 0/6 | source/lib/rocprof-sys/library/causal/components/backtrace.cpp |
| 0.0% 0/8 | 0/1 | 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/37 | 0/7 | source/lib/rocprof-sys/library/causal/components/causal_gotcha.cpp |
| 0.0% 0/86 | 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/50 | 0/8 | source/lib/rocprof-sys/library/causal/components/unblocking_gotcha.cpp |
| 0.0% 0/564 | 0/33 | source/lib/rocprof-sys/library/causal/data.cpp |
| 0.0% 0/91 | 0/16 | source/lib/rocprof-sys/library/causal/delay.cpp |
| 0.0% 0/391 | 0/29 | source/lib/rocprof-sys/library/causal/experiment.cpp |
| 0.0% 0/3 | 0/1 | 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/296 | 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/76 | 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/217 | 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/74 | 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/378 | 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/29 | 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/70 | 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/176 | 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/79 | 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/352 | 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/35 | 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/165 | 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/147 | 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/66 | 0/16 | source/lib/rocprof-sys/library/coverage/impl.hpp |
| 0.0% 0/268 | 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/156 | 0/9 | source/lib/rocprof-sys/library/pmc/collectors/common/settings.hpp |
| 0.0% 0/69 | 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/53 | 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/225 | 0/36 | source/lib/rocprof-sys/library/pmc/collectors/gpu/perfetto_policy.hpp |
| 0.0% 0/34 | 0/3 | source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/cache_policy.hpp |
| 0.0% 0/44 | 0/7 | source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/perfetto_policy.hpp |
| 0.0% 0/14 | 0/2 | source/lib/rocprof-sys/library/pmc/device_providers/procfs/provider.hpp |
| 0.0% 0/167 | 0/20 | source/lib/rocprof-sys/library/pmc/sampler.cpp |
| 0.0% 0/125 | 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/1084 | 0/69 | source/lib/rocprof-sys/library/rocprofiler-sdk.cpp |
| 0.0% 0/16 | 0/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/hip_stream.hpp |
| 0.0% 0/111 | 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/132 | 0/9 | source/lib/rocprof-sys/library/rocprofiler-sdk/fwd.cpp |
| 0.0% 0/33 | 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/109 | 0/10 | source/lib/rocprof-sys/library/rocprofiler-sdk/roctx_client.cpp |
| 0.0% 0/122 | 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/977 | 0/58 | source/lib/rocprof-sys/library/sampling.cpp |
| 0.0% 0/148 | 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/11 | 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/168 | 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/118 | 0/11 | source/lib/rocprof-sys/library/tracing.cpp |
| 0.0% 0/111 | 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/453 | 0/45 | source/python/libpyrocprofsys.cpp |
| 0.6% 1/173 | 1/13 | source/lib/core/perfetto.cpp |
| 0.8% 7/855 | 1/72 | source/lib/core/argparse.cpp |
| 3.6% 66/1812 | 10/304 | source/lib/core/config.cpp |
| 18.8% 6/32 | 2/5 | source/bin/common/common_utils.hpp |
🟠 20-50% (7 files)
| Lines | Functions | File |
|---|---|---|
| 20.0% 1/5 | 0/2 | source/lib/core/argparse.hpp |
| 20.0% 5/25 | 0/3 | source/lib/rocprof-sys/library/pmc/collectors/gpu/sample.hpp |
| 30.6% 159/520 | 34/71 | source/lib/core/trace_cache/metadata_registry.cpp |
| 31.2% 20/64 | 4/9 | source/lib/core/utility.hpp |
| 31.8% 7/22 | 0/2 | source/lib/rocprof-sys/library/pmc/collectors/nic/sample.hpp |
| 40.9% 18/44 | 1/7 | source/lib/rocprof-sys/library/rocprofiler-sdk/types.hpp |
| 49.4% 130/263 | 14/32 | source/lib/rocprof-sys/library/components/category_region.hpp |
🟡 50-80% (29 files)
| Lines | Functions | File |
|---|---|---|
| 50.0% 19/38 | 4/5 | source/lib/common/static_object.hpp |
| 50.0% 1/2 | 0/1 | source/lib/rocprof-sys/library/pmc/collectors/nic/types.hpp |
| 50.2% 210/418 | 23/35 | 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 |
| 56.2% 9/16 | 3/3 | source/lib/core/perfetto/sinks/per_pid_file_sink.cpp |
| 57.4% 31/54 | 3/5 | source/lib/core/output_file_registry.cpp |
| 60.0% 36/60 | 7/12 | source/lib/core/agent_manager.cpp |
| 61.4% 70/114 | 7/10 | source/lib/core/progress/bar.cpp |
| 61.7% 350/567 | 26/40 | source/bin/common/json_config.cpp |
| 63.1% 53/84 | 4/5 | source/lib/core/trace_cache/discovery.cpp |
| 64.9% 24/37 | 4/18 | source/lib/core/trace_cache/unified_memory_processor.hpp |
| 66.2% 47/71 | 5/5 | source/lib/rocprof-sys/library/pmc/collectors/gpu/gpu_traits.hpp |
| 66.7% 2/3 | 0/2 | source/lib/rocprof-sys/library/pmc/collectors/cpu/types.hpp |
| 66.7% 22/33 | 3/8 | source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/types.hpp |
| 68.4% 39/57 | 4/6 | source/lib/core/perfetto.hpp |
| 68.7% 46/67 | 11/14 | source/lib/core/trace_cache/data_types.cpp |
| 70.0% 236/337 | 15/17 | source/bin/common/preset_registry.cpp |
| 71.4% 25/35 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/rccl/event_info.hpp |
| 71.9% 87/121 | 14/17 | source/lib/core/perfetto/engine.cpp |
| 72.2% 13/18 | 2/5 | source/lib/rocprof-sys/library/pmc/collectors/hipfile/types.hpp |
| 72.2% 13/18 | 2/6 | source/lib/rocprof-sys/library/rocprofiler-sdk/roctx_client.hpp |
| 72.7% 32/44 | 3/3 | source/lib/core/perfetto/sinks/file_output.cpp |
| 74.3% 78/105 | 9/10 | source/lib/core/perfetto/engine_impl.hpp |
| 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.4% 46/61 | 6/8 | source/lib/rocprof-sys/library/pmc/collectors/cpu/sample.hpp |
| 78.2% 61/78 | 9/10 | source/lib/rocprof-sys/library/pmc/device_providers/rocprofiler_sdk/provider.hpp |
| 78.8% 78/99 | 4/4 | source/lib/core/perfetto/sinks/single_file_sink.cpp |
| 79.2% 19/24 | 2/2 | source/lib/core/node_info.cpp |
🟢 80-100% (111 files)
| Lines | Functions | File |
|---|---|---|
| 80.0% 100/125 | 14/16 | source/lib/common/path.hpp |
| 80.0% 4/5 | 1/1 | source/lib/core/agent.hpp |
| 80.6% 133/165 | 10/14 | source/lib/backends/procfs/backend.hpp |
| 80.8% 135/167 | 30/33 | source/lib/backends/rocprofiler_sdk/backend.hpp |
| 81.8% 719/879 | 29/34 | source/lib/core/trace_cache/rocpd_processor.cpp |
| 81.8% 36/44 | 3/6 | source/lib/core/containers/static_vector.hpp |
| 82.6% 57/69 | 8/8 | source/lib/rocprof-sys/library/pmc/collectors/base/collector.hpp |
| 83.9% 73/87 | 10/12 | source/lib/logger/logger.hpp |
| 84.6% 55/65 | 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% 213/250 | 20/33 | source/lib/core/sdk/tracing-config.hpp |
| 86.0% 49/57 | 4/4 | source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/device.hpp |
| 86.6% 259/299 | 27/33 | source/lib/common/environment.hpp |
| 86.7% 26/30 | 3/6 | source/lib/core/trace_cache/metadata_registry.hpp |
| 87.8% 151/172 | 17/19 | source/lib/rocprof-sys/library/rocprofiler-sdk/domain_service.hpp |
| 88.9% 24/27 | 5/6 | source/lib/rocprof-sys/library/rocprofiler-sdk/stream_stack_service.hpp |
| 89.1% 106/119 | 8/8 | source/lib/rocprof-sys/library/pmc/collectors/cpu/device.hpp |
| 89.3% 50/56 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_page_migrate.hpp |
| 90.0% 54/60 | 4/4 | source/lib/core/trace_cache/buffer_storage.cpp |
| 90.4% 178/197 | 14/18 | source/lib/rocprof-sys/library/components/shmem_gotcha.hpp |
| 90.5% 249/275 | 19/20 | source/lib/core/trace_cache/unified_memory_processor.cpp |
| 90.7% 39/43 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_page_fault.hpp |
| 90.7% 39/43 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_queue.hpp |
| 90.9% 10/11 | 2/2 | source/lib/core/control/clocks/timeline.hpp |
| 91.1% 41/45 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/queue.hpp |
| 91.5% 43/47 | 7/7 | source/lib/core/control/triggers/time_window.hpp |
| 91.7% 11/12 | 2/2 | source/lib/core/perfetto/session_backend.hpp |
| 91.7% 44/48 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_unmap_from_gpu.hpp |
| 91.8% 45/49 | 3/4 | source/lib/rocprof-sys/library/pmc/collectors/nic/nic_traits.hpp |
| 91.9% 34/37 | 3/4 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/common_tracing_callbacks.hpp |
| 92.1% 70/76 | 7/8 | source/lib/core/trace_cache/buffer_storage.hpp |
| 92.2% 47/51 | 7/7 | source/lib/core/control/clocks/posix.hpp |
| 92.3% 24/26 | 1/3 | source/lib/core/containers/c_array.hpp |
| 92.3% 36/39 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/scratch_memory.hpp |
| 92.3% 12/13 | 1/1 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/rccl/transferred_bytes_tracker.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 |
| 92.9% 13/14 | 1/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback_domain.hpp |
| 93.1% 54/58 | 6/8 | source/lib/rocprof-sys/library/components/pthread_mutex_gotcha.hpp |
| 94.4% 51/54 | 4/7 | source/lib/core/containers/aligned_static_vector.hpp |
| 95.0% 38/40 | 6/7 | source/lib/core/trace_cache/rocpd_helpers.hpp |
| 95.1% 253/266 | 21/30 | source/lib/core/trace_cache/sample_type.hpp |
| 95.2% 20/21 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/memory_allocation.hpp |
| 95.3% 162/170 | 19/22 | source/lib/rocprof-sys/library/components/ucx_gotcha.hpp |
| 95.4% 62/65 | 1/5 | source/lib/core/trace_cache/cacheable.hpp |
| 95.4% 83/87 | 19/23 | source/lib/core/containers/stable_vector.hpp |
| 95.8% 23/24 | 2/4 | source/lib/common/pci_bdf.hpp |
| 96.3% 26/27 | 1/2 | source/lib/common/delimit.hpp |
| 96.5% 82/85 | 11/12 | source/lib/core/state.hpp |
| 96.7% 148/153 | 9/10 | source/lib/common/md5sum.hpp |
| 96.8% 30/31 | 3/4 | source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/sample.hpp |
| 97.0% 32/33 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_dropped_events.hpp |
| 97.4% 74/76 | 6/6 | source/lib/core/common_types.hpp |
| 97.5% 39/40 | 3/3 | source/lib/core/utility.cpp |
| 97.5% 39/40 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/memory_copy.hpp |
| 97.7% 85/87 | 11/12 | source/lib/core/control/triggers/roctx.cpp |
| 97.7% 43/44 | 5/6 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered_domain.hpp |
| 97.8% 44/45 | 7/11 | source/lib/core/demangler.hpp |
| 97.8% 45/46 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/page_fault.hpp |
| 98.0% 49/50 | 3/3 | source/lib/rocprof-sys/library/pmc/collectors/nic/device.hpp |
| 98.1% 53/54 | 7/7 | source/lib/rocprof-sys/library/pmc/device_providers/amd_smi/provider.hpp |
| 98.5% 67/68 | 10/12 | source/lib/common/string_utility.hpp |
| 98.7% 76/77 | 3/3 | source/lib/core/perfetto/packet_framing.hpp |
| 98.8% 81/82 | 15/16 | source/lib/backends/amd_smi/backend.hpp |
| 99.1% 115/116 | 19/19 | source/lib/core/control/session.cpp |
| 100.0% 1/1 | 0/1 | source/bin/common/json_config.hpp |
| 100.0% 110/110 | 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% 32/32 | 2/3 | source/lib/backends/hipfile/backend.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% 24/24 | 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% 22/22 | 0/2 | source/lib/core/containers/operators.hpp |
| 100.0% 19/19 | 4/4 | source/lib/core/control/clocks/steady.cpp |
| 100.0% 2/2 | 1/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% 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% 7/7 | 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% 2/2 | 0/1 | source/lib/core/trace_cache/sample_processor_interface.hpp |
| 100.0% 9/9 | 3/3 | source/lib/core/trace_cache/type_registry.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% 12/12 | 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% 55/55 | 4/4 | source/lib/rocprof-sys/library/pmc/collectors/hipfile/device.hpp |
| 100.0% 36/36 | 2/3 | source/lib/rocprof-sys/library/pmc/collectors/hipfile/hipfile_traits.hpp |
| 100.0% 20/20 | 2/3 | source/lib/rocprof-sys/library/pmc/collectors/hipfile/sample.hpp |
| 100.0% 21/21 | 4/4 | source/lib/rocprof-sys/library/pmc/collectors/nic/perfetto_policy.hpp |
| 100.0% 3/3 | 0/3 | source/lib/rocprof-sys/library/pmc/common/types.hpp |
| 100.0% 43/43 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kernel_dispatch.hpp |
| 100.0% 4/4 | 1/1 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/code_object.hpp |
| 100.0% 17/17 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/rccl/device_resolver.hpp |
| 100.0% 48/48 | 4/4 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/rccl/rccl.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% | 177 |
| 20-50% | 7 |
| 50-80% | 29 |
| 80-100% | 111 |
Unit Tests (PR Diff Files Only)
Lines: 🔴 5.4% (📈 +0.25% vs base) — 187/3,441 across 13 files
Functions: 🔴 7.2% — 23/319
🔴 0-20% (10 files)
| Lines | Functions | File |
|---|---|---|
| 0.0% 0/694 | 0/40 | source/lib/rocprof-sys/library.cpp |
| 0.0% 0/9 | 0/3 | source/lib/rocprof-sys/library/components/backtrace_timestamp.cpp |
| 0.0% 0/352 | 0/20 | source/lib/rocprof-sys/library/components/pthread_create_gotcha.cpp |
| 0.0% 0/268 | 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/167 | 0/20 | source/lib/rocprof-sys/library/pmc/sampler.cpp |
| 0.0% 0/977 | 0/58 | source/lib/rocprof-sys/library/sampling.cpp |
| 0.0% 0/168 | 0/27 | source/lib/rocprof-sys/library/thread_info.cpp |
| 0.0% 0/118 | 0/11 | source/lib/rocprof-sys/library/tracing.cpp |
| 0.0% 0/111 | 0/30 | source/lib/rocprof-sys/library/tracing.hpp |
🟠 20-50% (1 files)
| Lines | Functions | File |
|---|---|---|
| 49.4% 130/263 (📉 -0.19%) | 14/32 | source/lib/rocprof-sys/library/components/category_region.hpp |
🟢 80-100% (2 files)
| Lines | Functions | File |
|---|---|---|
| 90.9% 10/11 | 2/2 | source/lib/core/control/clocks/timeline.hpp |
| 92.2% 47/51 | 7/7 | source/lib/core/control/clocks/posix.hpp |
Distribution
| Range | Files |
|---|---|
| 0-20% | 10 |
| 20-50% | 1 |
| 50-80% | 0 |
| 80-100% | 2 |
E2E Tests
Lines: 🟡 68.3% — 23,379/34,217 across 324 files
Functions: 🟡 66.8% — 2,338/3,501
🔴 0-20% (40 files)
| Lines | Functions | File |
|---|---|---|
| 0.0% 0/106 | 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/85 | 0/5 | source/lib/core/cpu.cpp |
| 0.0% 0/1 | 0/1 | source/lib/core/cpu.hpp |
| 0.0% 0/61 | 0/6 | source/lib/core/dynamic_library.cpp |
| 0.0% 0/28 | 0/7 | source/lib/core/exception.cpp |
| 0.0% 0/162 | 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/53 | 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/225 | 0/36 | source/lib/rocprof-sys/library/pmc/collectors/gpu/perfetto_policy.hpp |
| 0.0% 0/34 | 0/3 | source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/cache_policy.hpp |
| 0.0% 0/44 | 0/7 | source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/perfetto_policy.hpp |
| 0.0% 0/2 | 0/1 | source/lib/rocprof-sys/library/rocm.cpp |
| 0.0% 0/16 | 0/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/hip_stream.hpp |
| 0.0% 0/111 | 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/132 | 0/9 | source/lib/rocprof-sys/library/rocprofiler-sdk/fwd.cpp |
| 0.0% 0/109 | 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/453 | 0/45 | source/python/libpyrocprofsys.cpp |
| 0.6% 1/173 | 1/13 | source/lib/core/perfetto.cpp |
| 4.8% 8/165 | 2/31 | source/lib/rocprof-sys/library/components/vaapi_gotcha.cpp |
| 5.6% 61/1084 | 12/69 | source/lib/rocprof-sys/library/rocprofiler-sdk.cpp |
| 8.3% 3/36 | 1/9 | source/lib/rocprof-sys/library/rocprofiler-sdk/marker_writer.cpp |
| 8.7% 4/46 | 0/2 | source/lib/backends/rocprofiler_sdk/wrapper.hpp |
| 9.1% 3/33 | 0/7 | source/lib/rocprof-sys/library/rocprofiler-sdk/fwd.hpp |
| 12.0% 3/25 | 1/2 | source/lib/core/amd_smi.cpp |
| 13.2% 32/242 | 6/29 | source/lib/core/gpu.cpp |
| 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 |
🟠 20-50% (20 files)
| Lines | Functions | File |
|---|---|---|
| 20.0% 5/25 | 0/3 | source/lib/rocprof-sys/library/pmc/collectors/gpu/sample.hpp |
| 21.8% 34/156 | 4/9 | source/lib/rocprof-sys/library/pmc/collectors/common/settings.hpp |
| 24.4% 19/78 | 3/5 | source/lib/core/perf.cpp |
| 27.8% 27/97 | 4/8 | source/lib/rocprof-sys-rt/src/RTposix.c |
| 30.3% 249/823 | 32/104 | source/lib/core/trace_cache/perfetto_processor.cpp |
| 31.8% 7/22 | 0/2 | source/lib/rocprof-sys/library/pmc/collectors/nic/sample.hpp |
| 31.9% 166/520 | 36/71 | source/lib/core/trace_cache/metadata_registry.cpp |
| 34.5% 10/29 | 3/6 | source/lib/rocprof-sys/library/components/exit_gotcha.cpp |
| 35.7% 30/84 | 10/20 | source/lib/rocprof-sys/api.cpp |
| 37.1% 39/105 | 5/11 | source/lib/rocprof-sys/library/causal/components/blocking_gotcha.cpp |
| 37.8% 31/82 | 1/2 | source/bin/rocprof-sys-causal/rocprof-sys-causal.cpp |
| 38.5% 5/13 | 2/3 | source/lib/rocprof-sys/library/components/kill_gotcha.cpp |
| 40.9% 18/44 | 1/7 | source/lib/rocprof-sys/library/rocprofiler-sdk/types.hpp |
| 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% 72/160 | 3/7 | source/bin/rocprof-sys-instrument/info.hpp |
| 45.5% 30/66 | 6/16 | source/lib/rocprof-sys/library/coverage/impl.hpp |
| 46.2% 42/91 | 2/6 | source/lib/rocprof-sys/timeout.cpp |
| 47.4% 179/378 | 16/30 | source/lib/rocprof-sys/library/components/comm_data.cpp |
| 47.7% 31/65 | 3/4 | source/lib/rocprof-sys-rt/src/RTheap.c |
🟡 50-80% (63 files)
| Lines | Functions | File |
|---|---|---|
| 50.0% 8/16 | 2/4 | source/lib/binary/address_multirange.cpp |
| 50.0% 16/32 | 5/7 | source/lib/core/perfetto/emitter.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 |
| 50.5% 56/111 | 12/30 | source/lib/rocprof-sys/library/tracing.hpp |
| 52.0% 13/25 | 2/3 | source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/gpu_perf_counter_traits.hpp |
| 53.0% 142/268 | 27/37 | source/lib/rocprof-sys/library/kokkosp.cpp |
| 55.6% 25/45 | 0/1 | source/lib/core/trace_cache/sample_processor.hpp |
| 57.0% 45/79 | 8/19 | source/lib/rocprof-sys/library/components/numa_gotcha.cpp |
| 57.5% 23/40 | 1/3 | source/lib/common/invoke.hpp |
| 58.1% 97/167 | 15/20 | source/lib/rocprof-sys/library/pmc/sampler.cpp |
| 59.4% 63/106 | 5/9 | source/bin/common/argument_registration.hpp |
| 59.5% 44/74 | 13/18 | source/lib/core/binary/address_range.cpp |
| 60.8% 132/217 | 12/30 | source/lib/rocprof-sys/library/components/backtrace_metrics.cpp |
| 61.4% 70/114 | 7/10 | source/lib/core/progress/bar.cpp |
| 62.7% 37/59 | 3/4 | source/lib/core/mproc.cpp |
| 62.9% 44/70 | 5/8 | source/lib/rocprof-sys/library/components/fork_gotcha.cpp |
| 63.9% 161/252 | 24/32 | source/lib/rocprof-sys/library/perf.cpp |
| 64.3% 54/84 | 4/5 | source/lib/core/trace_cache/discovery.cpp |
| 64.9% 24/37 | 4/18 | source/lib/core/trace_cache/unified_memory_processor.hpp |
| 66.2% 47/71 | 5/5 | source/lib/rocprof-sys/library/pmc/collectors/gpu/gpu_traits.hpp |
| 66.3% 468/706 | 33/45 | source/bin/rocprof-sys-instrument/details.cpp |
| 66.4% 81/122 | 15/20 | source/lib/rocprof-sys/library/runtime.cpp |
| 66.7% 6/9 | 1/1 | source/lib/core/perfetto/sinks/append_mode.hpp |
| 66.7% 22/33 | 3/8 | source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/types.hpp |
| 67.6% 25/37 | 5/7 | source/lib/rocprof-sys/library/causal/components/causal_gotcha.cpp |
| 69.1% 375/543 | 40/85 | source/lib/rocprof-sys-dl/dl.cpp |
| 70.0% 35/50 | 5/8 | source/lib/rocprof-sys/library/causal/components/unblocking_gotcha.cpp |
| 70.2% 40/57 | 4/6 | source/lib/core/perfetto.hpp |
| 70.5% 124/176 | 16/22 | source/lib/rocprof-sys/library/components/mpi_gotcha.cpp |
| 71.4% 25/35 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/rccl/event_info.hpp |
| 72.1% 409/567 | 30/40 | source/bin/common/json_config.cpp |
| 72.2% 13/18 | 2/5 | source/lib/rocprof-sys/library/pmc/collectors/hipfile/types.hpp |
| 72.2% 13/18 | 2/6 | source/lib/rocprof-sys/library/rocprofiler-sdk/roctx_client.hpp |
| 72.7% 245/337 | 16/17 | source/bin/common/preset_registry.cpp |
| 72.7% 32/44 | 3/3 | source/lib/core/perfetto/sinks/file_output.cpp |
| 73.0% 54/74 | 5/6 | source/lib/binary/link_map.cpp |
| 73.0% 713/977 | 46/58 | source/lib/rocprof-sys/library/sampling.cpp |
| 73.6% 78/106 | 5/7 | source/bin/rocprof-sys-instrument/function_signature.cpp |
| 74.5% 35/47 | 4/6 | source/lib/rocprof-sys/library/pmc/collectors/cpu/cpu_traits.hpp |
| 74.6% 1184/1588 | 51/87 | source/bin/rocprof-sys-instrument/rocprof-sys-instrument.cpp |
| 74.6% 47/63 | 4/5 | source/bin/rocprof-sys-instrument/log.cpp |
| 74.6% 312/418 | 33/35 | source/bin/common/common_utils.cpp |
| 74.6% 421/564 | 30/33 | source/lib/rocprof-sys/library/causal/data.cpp |
| 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.3% 223/296 | 23/25 | source/lib/rocprof-sys/library/causal/sampling.cpp |
| 75.7% 414/547 | 40/41 | source/bin/rocprof-sys-instrument/module_function.cpp |
| 76.2% 93/122 | 11/12 | source/lib/core/trace_cache/post_processor.cpp |
| 76.3% 29/38 | 5/5 | source/lib/common/static_object.hpp |
| 76.7% 46/60 | 10/12 | source/lib/core/agent_manager.cpp |
| 78.2% 61/78 | 9/10 | source/lib/rocprof-sys/library/pmc/device_providers/rocprofiler_sdk/provider.hpp |
| 78.3% 209/267 | 24/28 | source/bin/common/tool_runner.cpp |
| 78.4% 116/148 | 26/31 | source/lib/rocprof-sys/library/thread_data.hpp |
| 79.0% 83/105 | 10/10 | source/lib/core/perfetto/engine_impl.hpp |
| 79.1% 219/277 | 20/22 | source/bin/rocprof-sys-instrument/internal_libs.cpp |
| 79.2% 19/24 | 2/2 | source/lib/core/node_info.cpp |
| 79.8% 134/168 | 24/27 | source/lib/rocprof-sys/library/thread_info.cpp |
🟢 80-100% (201 files)
| Lines | Functions | File |
|---|---|---|
| 80.0% 4/5 | 0/1 | source/bin/rocprof-sys-instrument/log.hpp |
| 80.0% 4/5 | 1/1 | source/lib/core/agent.hpp |
| 80.7% 134/166 | 12/12 | source/bin/rocprof-sys-instrument/rocprof-sys-instrument.hpp |
| 80.8% 135/167 | 30/33 | source/lib/backends/rocprofiler_sdk/backend.hpp |
| 81.2% 181/223 | 21/24 | source/bin/rocprof-sys-avail/common.cpp |
| 81.2% 13/16 | 1/1 | source/lib/rocprof-sys-dl/main.c |
| 81.3% 1474/1812 | 278/304 | source/lib/core/config.cpp |
| 81.4% 70/86 | 17/22 | source/lib/rocprof-sys/library/causal/components/progress_point.cpp |
| 82.7% 43/52 | 5/5 | source/lib/core/perfetto/cached_perfetto_session.cpp |
| 82.9% 324/391 | 18/29 | source/lib/rocprof-sys/library/causal/experiment.cpp |
| 83.2% 89/107 | 8/9 | source/lib/binary/dwarf_entry.cpp |
| 83.3% 578/694 | 35/40 | source/lib/rocprof-sys/library.cpp |
| 84.2% 16/19 | 3/5 | source/lib/rocprof-sys/library/components/comm_data.hpp |
| 84.2% 139/165 | 11/14 | source/lib/backends/procfs/backend.hpp |
| 84.3% 741/879 | 29/34 | source/lib/core/trace_cache/rocpd_processor.cpp |
| 84.6% 137/162 | 17/18 | source/lib/binary/symbol.cpp |
| 84.6% 55/65 | 4/4 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/page_migrate.hpp |
| 84.8% 84/99 | 4/4 | source/lib/core/perfetto/sinks/single_file_sink.cpp |
| 85.1% 74/87 | 10/12 | source/lib/logger/logger.hpp |
| 85.7% 78/91 | 14/16 | source/lib/rocprof-sys/library/causal/delay.cpp |
| 86.0% 49/57 | 4/4 | source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/device.hpp |
| 86.0% 80/93 | 5/7 | source/bin/rocprof-sys-instrument/module_function.hpp |
| 86.7% 26/30 | 3/6 | source/lib/core/trace_cache/metadata_registry.hpp |
| 87.0% 47/54 | 3/3 | source/lib/core/trace_cache/cache_manager.cpp |
| 87.6% 262/299 | 29/33 | source/lib/common/environment.hpp |
| 87.8% 129/147 | 10/10 | source/lib/rocprof-sys/library/coverage.cpp |
| 87.8% 151/172 | 17/19 | source/lib/rocprof-sys/library/rocprofiler-sdk/domain_service.hpp |
| 87.9% 399/454 | 35/47 | source/bin/rocprof-sys-causal/impl.cpp |
| 88.1% 104/118 | 10/11 | source/lib/rocprof-sys/library/tracing.cpp |
| 88.2% 67/76 | 9/11 | source/lib/rocprof-sys/library/components/backtrace.cpp |
| 88.4% 61/69 | 8/8 | source/lib/rocprof-sys/library/pmc/collectors/base/collector.hpp |
| 88.9% 48/54 | 4/5 | source/lib/core/output_file_registry.cpp |
| 88.9% 24/27 | 5/6 | source/lib/rocprof-sys/library/rocprofiler-sdk/stream_stack_service.hpp |
| 89.0% 761/855 | 57/72 | source/lib/core/argparse.cpp |
| 89.2% 66/74 | 7/10 | source/lib/rocprof-sys/library/components/callchain.cpp |
| 89.2% 223/250 | 23/33 | source/lib/core/sdk/tracing-config.hpp |
| 89.3% 50/56 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_page_migrate.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.1% 247/274 | 11/12 | source/bin/rocprof-sys-avail/generate_config.cpp |
| 90.5% 249/275 | 19/20 | source/lib/core/trace_cache/unified_memory_processor.cpp |
| 90.7% 39/43 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_page_fault.hpp |
| 90.7% 39/43 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_queue.hpp |
| 90.9% 20/22 | 2/2 | source/lib/common/setup.hpp |
| 90.9% 10/11 | 2/2 | source/lib/core/control/clocks/timeline.hpp |
| 90.9% 320/352 | 18/20 | source/lib/rocprof-sys/library/components/pthread_create_gotcha.cpp |
| 90.9% 10/11 | 1/1 | source/lib/rocprof-sys/library/thread_deleter.cpp |
| 91.1% 41/45 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/queue.hpp |
| 91.6% 109/119 | 8/8 | source/lib/rocprof-sys/library/pmc/collectors/cpu/device.hpp |
| 91.7% 11/12 | 2/2 | source/lib/core/perfetto/session_backend.hpp |
| 91.7% 44/48 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_unmap_from_gpu.hpp |
| 91.8% 45/49 | 3/4 | source/lib/rocprof-sys/library/pmc/collectors/nic/nic_traits.hpp |
| 91.9% 34/37 | 3/4 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/common_tracing_callbacks.hpp |
| 92.1% 116/126 | 5/5 | source/lib/binary/analysis.cpp |
| 92.1% 70/76 | 7/8 | source/lib/core/trace_cache/buffer_storage.hpp |
| 92.2% 47/51 | 7/7 | source/lib/core/control/clocks/posix.hpp |
| 92.3% 36/39 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/scratch_memory.hpp |
| 92.3% 12/13 | 1/1 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/rccl/transferred_bytes_tracker.hpp |
| 92.6% 112/121 | 16/17 | source/lib/core/perfetto/engine.cpp |
| 92.6% 163/176 | 9/9 | source/lib/rocprof-sys/library/pmc/collectors/gpu/device.hpp |
| 92.6% 919/992 | 41/48 | source/bin/rocprof-sys-avail/avail.cpp |
| 92.8% 244/263 | 28/32 | source/lib/rocprof-sys/library/components/category_region.hpp |
| 92.9% 13/14 | 2/2 | source/lib/rocprof-sys/library/pmc/device_providers/procfs/provider.hpp |
| 92.9% 13/14 | 1/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback_domain.hpp |
| 93.1% 27/29 | 3/5 | source/lib/rocprof-sys/library/coverage.hpp |
| 93.6% 117/125 | 11/11 | source/lib/rocprof-sys/library/process_sampler.cpp |
| 93.8% 15/16 | 3/3 | source/lib/core/perfetto/sinks/per_pid_file_sink.cpp |
| 93.9% 31/33 | 6/6 | source/lib/core/mpi.hpp |
| 94.3% 33/35 | 7/9 | source/lib/rocprof-sys/library/components/pthread_gotcha.cpp |
| 94.4% 118/125 | 15/16 | source/lib/common/path.hpp |
| 94.4% 186/197 | 16/18 | source/lib/rocprof-sys/library/components/shmem_gotcha.hpp |
| 94.4% 17/18 | 3/3 | source/bin/rocprof-sys-avail/component_categories.hpp |
| 94.9% 74/78 | 6/6 | source/lib/rocprof-sys/library/causal/components/backtrace.cpp |
| 95.0% 38/40 | 6/7 | source/lib/core/trace_cache/rocpd_helpers.hpp |
| 95.1% 58/61 | 7/8 | source/lib/rocprof-sys/library/pmc/collectors/cpu/sample.hpp |
| 95.1% 253/266 | 21/30 | source/lib/core/trace_cache/sample_type.hpp |
| 95.2% 20/21 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/memory_allocation.hpp |
| 95.3% 162/170 | 19/22 | source/lib/rocprof-sys/library/components/ucx_gotcha.hpp |
| 95.4% 62/65 | 1/5 | source/lib/core/trace_cache/cacheable.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 |
| 96.3% 26/27 | 1/2 | source/lib/common/delimit.hpp |
| 96.3% 52/54 | 5/7 | source/lib/core/containers/aligned_static_vector.hpp |
| 96.6% 28/29 | 3/3 | source/lib/core/config.hpp |
| 96.7% 148/153 | 9/10 | source/lib/common/md5sum.hpp |
| 96.8% 30/31 | 3/4 | source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/sample.hpp |
| 96.9% 62/64 | 9/9 | source/lib/core/utility.hpp |
| 97.0% 32/33 | 4/4 | source/lib/core/perfetto/counter_track.hpp |
| 97.0% 32/33 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/event_dropped_events.hpp |
| 97.0% 65/67 | 14/14 | source/lib/core/trace_cache/data_types.cpp |
| 97.4% 74/76 | 6/6 | source/lib/core/common_types.hpp |
| 97.5% 39/40 | 3/3 | source/lib/core/utility.cpp |
| 97.5% 39/40 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/memory_copy.hpp |
| 97.7% 85/87 | 11/12 | source/lib/core/control/triggers/roctx.cpp |
| 97.7% 43/44 | 5/6 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered_domain.hpp |
| 97.8% 44/45 | 7/11 | source/lib/core/demangler.hpp |
| 97.8% 45/46 | 3/3 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kfd/page_fault.hpp |
| 98.0% 49/50 | 3/3 | source/lib/rocprof-sys/library/pmc/collectors/nic/device.hpp |
| 98.1% 53/54 | 7/7 | source/lib/rocprof-sys/library/pmc/device_providers/amd_smi/provider.hpp |
| 98.3% 57/58 | 6/8 | source/lib/rocprof-sys/library/components/pthread_mutex_gotcha.hpp |
| 98.5% 67/68 | 10/12 | source/lib/common/string_utility.hpp |
| 98.6% 68/69 | 5/5 | source/lib/rocprof-sys/library/pmc/collectors/cpu/cache_policy.hpp |
| 98.7% 76/77 | 3/3 | source/lib/core/perfetto/packet_framing.hpp |
| 98.8% 81/82 | 15/16 | source/lib/backends/amd_smi/backend.hpp |
| 99.1% 115/116 | 19/19 | source/lib/core/control/session.cpp |
| 100.0% 32/32 | 4/5 | source/bin/common/common_utils.hpp |
| 100.0% 1/1 | 0/1 | source/bin/common/json_config.hpp |
| 100.0% 60/60 | 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% 11/11 | 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% 110/110 | 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% 32/32 | 2/3 | source/lib/backends/hipfile/backend.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% 6/6 | 1/2 | source/lib/binary/scope_filter.hpp |
| 100.0% 8/8 | 7/8 | source/lib/binary/symbol.hpp |
| 100.0% 10/10 | 2/2 | source/lib/common/env_vars.hpp |
| 100.0% 12/12 | 1/1 | source/lib/common/join.hpp |
| 100.0% 24/24 | 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% 55/55 | 6/7 | source/lib/core/config/trace_period_config.hpp |
| 100.0% 26/26 | 1/3 | source/lib/core/containers/c_array.hpp |
| 100.0% 22/22 | 0/2 | source/lib/core/containers/operators.hpp |
| 100.0% 87/87 | 20/23 | source/lib/core/containers/stable_vector.hpp |
| 100.0% 44/44 | 3/6 | source/lib/core/containers/static_vector.hpp |
| 100.0% 19/19 | 4/4 | 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% 47/47 | 7/7 | source/lib/core/control/triggers/time_window.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% 7/7 | 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% 1/1 | 1/1 | source/lib/core/trace_cache/perfetto_processor.hpp |
| 100.0% 2/2 | 0/1 | source/lib/core/trace_cache/sample_processor_interface.hpp |
| 100.0% 9/9 | 3/3 | source/lib/core/trace_cache/type_registry.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% 12/12 | 1/1 | source/lib/logger/logger.cpp |
| 100.0% 8/8 | 0/1 | 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 | 0/1 | 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 | 0/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 | 0/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% 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% 55/55 | 4/4 | source/lib/rocprof-sys/library/pmc/collectors/hipfile/device.hpp |
| 100.0% 36/36 | 2/3 | source/lib/rocprof-sys/library/pmc/collectors/hipfile/hipfile_traits.hpp |
| 100.0% 20/20 | 2/3 | source/lib/rocprof-sys/library/pmc/collectors/hipfile/sample.hpp |
| 100.0% 21/21 | 4/4 | source/lib/rocprof-sys/library/pmc/collectors/nic/perfetto_policy.hpp |
| 100.0% 3/3 | 0/3 | 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% 43/43 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/buffered/kernel_dispatch.hpp |
| 100.0% 4/4 | 1/1 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/code_object.hpp |
| 100.0% 17/17 | 2/2 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/rccl/device_resolver.hpp |
| 100.0% 48/48 | 4/4 | source/lib/rocprof-sys/library/rocprofiler-sdk/callback/rccl/rccl.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% | 40 |
| 20-50% | 20 |
| 50-80% | 63 |
| 80-100% | 201 |
64425ee to
fd1cd62
Compare
8df424b to
b888d65
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Hardware overflow samples remain on CLOCK_MONOTONIC, allowing suspend-induced timeline gaps.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
Aligns CPU-side trace timestamps with GPU records by standardizing on CLOCK_BOOTTIME.
Changes:
- Adds shared
timeline_ns()clock helpers. - Migrates tracing, sampling, PMC, Kokkos, and lifecycle timestamps.
- Updates sampling clocks, tests, and documentation.
| File | Description |
|---|---|
library/tracing.hpp |
Uses the timeline clock for tracing timestamps. |
library/tracing.cpp |
Aligns thread-start timestamps. |
library/thread_info.cpp |
Aligns initialized thread lifetimes. |
library/sampling.cpp |
Updates sampling timers and pause timestamps. |
library/pmc/sampler.cpp |
Aligns PMC sample timestamps. |
library/perf.cpp |
Updates perf sampling clock selection. |
library/kokkosp.cpp |
Aligns Kokkos event timestamps. |
library/components/pthread_create_gotcha.cpp |
Aligns thread-stop timestamps. |
library/components/category_region.hpp |
Uses the timeline clock for regions. |
library/components/backtrace_timestamp.cpp |
Aligns backtrace sample timestamps. |
library/causal/sampling.cpp |
Updates causal timer sampling. |
library.cpp |
Aligns process and main-thread lifetimes. |
core/control/tests/test_posix_clock.cpp |
Tests the BOOTTIME source. |
core/control/clocks/posix.hpp |
Adds timeline clock helpers. |
docs/conceptual/data-collection-modes.rst |
Documents timeline-clock behavior. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
b4b8d7d to
87cb0ba
Compare
8d94987 to
388dfbd
Compare
TheRock Submodule Bump ActivityNewest first
|
…OOTTIME to match GPU traces (#11667) ## Motivation <!-- Explain the purpose of this PR and the goals it aims to achieve. --> HIP/HSA/kernel timestamps from rocprofiler-sdk use `CLOCK_BOOTTIME`, while CPU tracks and samples used `CLOCK_MONOTONIC`. On systems that have different `CLOCK_BOOTTIME` vs `CLOCK_MONOTONIC`, due to suspend/resume, traces shows both as one timeline and shows a misleading CPU vs GPU gap. This change makes `CLOCK_BOOTTIME` the only trace timeline clock so CPU, sampling, and SDK records line up. CPU-time sampling cadence is unchanged. ## Technical Details <!-- Explain the changes along with any relevant GitHub links. --> - Add stateless internal `control::clocks::timeline_now()` / `timeline_ns()` helpers backed by `CLOCK_BOOTTIME`, independent of timemory and the stateful POSIX time-window clock. - Stamp CPU regions, call-stack samples, PMC samples, Kokkos events, pause intervals, and thread/process lifetimes with the common timeline clock. - Keep realtime sampling timers in `sampling.cpp` and `causal/sampling.cpp` on `CLOCK_REALTIME`; this clock only controls when sampling signals fire. - Configure perf event timestamps, including hardware and software overflow events, to use `CLOCK_BOOTTIME`. - Keep CPU-time sampling timers on `CLOCK_THREAD_CPUTIME_ID`. - Leave SDK record timestamps unchanged because rocprofiler-sdk already uses `CLOCK_BOOTTIME`. - Document that `--trace-clock-id` controls only collection start/stop timing, not event timestamps. Note: - Probe `CLOCK_BOOTTIME` before profiling starts. If unavailable, disable all profiling - including SDK tracing - without terminating the target application. <- This fix was removed because during testing it was found that this fix will be unreachable as SDK library will abort before it reaches any fix in rocprofiler-systems: ``` LD_PRELOAD="$PWD/libfake-boottime.so:$LD_PRELOAD" ./rocprof-sys-run -- ../transpose F1006 10:56:06.485420 1008719 utility.hpp:77] clock_gettime failed: Invalid argument *** Check failure stack trace: *** Aborted (core dumped) ``` ## 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-772 ## Test Plan <!-- Explain any relevant testing done to verify this PR. --> - [x] `timeline_clock_test.available_on_linux` confirms that `CLOCK_BOOTTIME` is available. - [x] `timeline_clock_test.uses_clock_boottime` checks that both `timeline_now()` and `timeline_ns()` fall between surrounding `clock_gettime(CLOCK_BOOTTIME)` reads. - [x] `category_region_*` (33 tests) confirms that the injected mock clock still drives the category-region seam. These tests do not verify the production `CLOCK_BOOTTIME` source. - [x] On a machine whose boot-to-monotonic offset is seconds, collect CPU sampling together with HIP/HSA traces and confirm that Perfetto shows no suspend-sized gap between CPU and GPU events. - [x] In that same run, compare the rocpd CPU and region timestamps with the SDK HIP/HSA timestamps. ## Test Result <!-- Briefly summarize test outcomes. --> Current Behavior: <img width="988" height="132" alt="image" src="https://github.com/user-attachments/assets/4f74c2d4-7340-421f-8760-11c835f30efb" /> <img width="2398" height="2030" alt="image" src="https://github.com/user-attachments/assets/282424d7-bf64-495d-90b7-3c437087dc91" /> After Fix: <img width="923" height="491" alt="image" src="https://github.com/user-attachments/assets/58a09a36-2dfb-47e9-aa1c-d1db06b169c4" /> ## Submission Checklist - [x] Look over the contributing guidelines at https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.
…ackend (#13730) ## Motivation <!-- Explain the purpose of this PR and the goals it aims to achieve. --> Part of removing the timemory dependency. `tim::get_clock_*_now()` had been partially replaced by the in-tree timeline clock (#11667 moved trace timestamps to `CLOCK_BOOTTIME`), but `tim::get_clock_thread_now()` was still used for per-thread CPU time in `backtrace_metrics`, and `timemory/components/timing/backends.hpp` was still included in 9 files. This PR removes that dependency, bans the header, and consolidates the in-tree clocks so each clock has one home. ## Technical Details <!-- Explain the changes along with any relevant GitHub links. --> **timemory clock removal** - `backtrace_metrics::sample()` reads per-thread CPU time with `clocks::thread_cpu::now()` (`clock_gettime(CLOCK_THREAD_CPUTIME_ID)`) instead of `tim::get_clock_thread_now()`. It uses the same clock and produces the same nanosecond values. - `backtrace_metrics` stores the value as `std::chrono::nanoseconds m_cpu_time`, and `get_cpu_timestamp()` is renamed to `get_cpu_time()`: the value is an amount of CPU time (a difference between two samples), not a point on the timeline. The `thread_cpu_time` track and the `sampling_cpu_clock` PROFILE output compute exactly the same values as before. - Removed all 9 includes of `timemory/components/timing/backends.hpp` and added the header to `scripts/banned-includes.json`. **Clock consolidation (no behavior change)** - New `common/clocks.hpp`, namespace `rocprofsys::common::clocks`: stateless, async-signal-safe clock reads. - `detail::read(clockid_t)`: one shared `clock_gettime` → `std::chrono::nanoseconds` conversion. - `timeline::{k_sdk_host_clock_id, now(), now_ns()}`: the trace timeline (`CLOCK_BOOTTIME`, rocprofiler-sdk's host clock). Replaces `core/control/clocks/timeline.hpp`; `control::clocks::timeline_ns()` becomes `clocks::timeline::now_ns()`. The test-only `timeline_available()` is removed. - `thread_cpu::now()`: CPU time of the calling thread. - Waitable clocks used by trace time windows (renames only): - `core/control/clocks/{posix,steady}` → `core/control/waitable_clocks/{posix,steady}`. - The concept `control::clock_policy` (`control/clock.hpp`) → `control::waitable_clocks::contract` (`waitable_clocks/contract.hpp`). - `clock_duration` / `clock_time_point` → `waitable_clocks::duration` / `time_point`. - The overflow sampler (`sampling.cpp`) and `perf_event::open` (`perf.cpp`) now set the perf `clockid` from `clocks::timeline::k_sdk_host_clock_id` instead of a literal `CLOCK_BOOTTIME`. Every clock ID that must match the timeline now comes from one constant; the value is unchanged. **Small fixes** - Stale clock comments in `pmc/collectors/hipfile/device.hpp` and `collector_slice.hpp`. - `wall_clock_source` renamed to `timeline_clock_source` in `category_region.hpp`. - Removed unused `clock_type` aliases in `backtrace.hpp` and `backtrace_metrics.hpp`. - Fixed the `clk_lcoks` typo in `steady.cpp`. - clang-tidy fixes on touched lines: `[[nodiscard]]` getters, `const`, `k_` constant names. **Tests** - New `common/tests/test_clocks.cpp`, in `lib-common-tests`: the `read()` failure path; the timeline reads `CLOCK_BOOTTIME`; thread CPU time never decreases, advances while the thread runs, and counts only the calling thread. - The waitable clock tests are renamed to `control/tests/test_waitable_{posix,steady}.cpp`. ## 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-818 ## Test Plan <!-- Explain any relevant testing done to verify this PR. --> - Existing unit tests and ctest suite - `thread_cpu_time` values: ran `rocprof-sys-sample` on `parallel-overhead 20 2 100000` with 300 Hz CPU-time sampling and rocpd output, and compared the per-thread tracks with the same run on `develop`. ## Test Result <!-- Briefly summarize test outcomes. --> - unit tests and ctest suite pass - `thread_cpu_time` matches `develop` to within run-to-run variation: | Track | Samples (develop / PR) | Median sample (develop / PR) | Total CPU time (develop / PR) | |---|---|---|---| | `thread_cpu_time [0]` | 247 / 251 | 0.003002 / 0.003002 s | 0.823 / 0.837 s | | `thread_cpu_time [1]` | 249 / 248 | 0.003001 / 0.003000 s | 1.327 / 1.323 s | | `thread_cpu_time [2]` | 250 / 248 | 0.003000 / 0.003001 s | 1.330 / 1.324 s | ## Submission Checklist - [x] Look over the contributing guidelines at https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.

Motivation
HIP/HSA/kernel timestamps from rocprofiler-sdk use
CLOCK_BOOTTIME, while CPU tracks and samples usedCLOCK_MONOTONIC. On systems that have differentCLOCK_BOOTTIMEvsCLOCK_MONOTONIC, due to suspend/resume, traces shows both as one timeline and shows a misleading CPU vs GPU gap.This change makes
CLOCK_BOOTTIMEthe only trace timeline clock so CPU, sampling, and SDK records line up.CPU-time sampling cadence is unchanged.
Technical Details
control::clocks::timeline_now()/timeline_ns()helpers backed byCLOCK_BOOTTIME, independent of timemory and the stateful POSIX time-window clock.sampling.cppandcausal/sampling.cpponCLOCK_REALTIME; this clock only controls when sampling signals fire.CLOCK_BOOTTIME.CLOCK_THREAD_CPUTIME_ID.CLOCK_BOOTTIME.--trace-clock-idcontrols only collection start/stop timing, not event timestamps.Note:
CLOCK_BOOTTIMEbefore profiling starts. If unavailable, disable all profiling - including SDK tracing - without terminating the target application. <- This fix was removed because during testing it was found that this fix will be unreachable as SDK library will abort before it reaches any fix in rocprofiler-systems:Issue Tracking
JIRA ID: AIPROFSYST-772
Test Plan
timeline_clock_test.available_on_linuxconfirms thatCLOCK_BOOTTIMEis available.timeline_clock_test.uses_clock_boottimechecks that bothtimeline_now()andtimeline_ns()fall between surroundingclock_gettime(CLOCK_BOOTTIME)reads.category_region_*(33 tests) confirms that the injected mock clock still drives the category-region seam. These tests do not verify the productionCLOCK_BOOTTIMEsource.Test Result
Current Behavior:
After Fix:

Submission Checklist