Skip to content

[rocprofiler-systems] Replace get_env and set_env from timemory inside rocprofiler-systems - #6203

Merged
dgaliffiAMD merged 9 commits into
developfrom
users/mradosav-amd/remove-tim-get-env
Jun 2, 2026
Merged

dgaliffiAMD merged 9 commits into
developfrom
users/mradosav-amd/remove-tim-get-env

Conversation

@mradosav-amd

@mradosav-amd mradosav-amd commented May 18, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

Remove the dependency on tim::get_env / tim::set_env / tim::get_env_choice from source/lib/ and source/python/, replacing them with the project-owned rocprofsys::common::get_env / set_env / get_env_choice from source/lib/common/environment.hpp. This keeps timemory as a build dependency only for the components that genuinely need it, and gives the project full control over how environment variables are read.

A secondary goal was to make the environment layer unit-testable without touching the real process environment, which drove the backend-parameterisation refactor described below.

Technical Details

Replace tim::get_env / tim::set_env with rocprofsys::common equivalents

source/lib/common/environment.hpp

  • Parses integral and floating-point types with std::from_chars (locale-independent, non-throwing): negative or out-of-range input for the target type falls back to the default instead of wrapping or truncating, and a very large all-digit boolean value no longer throws
  • env_id is const char*-oriented (primary, allocation-free overload) with a std::string_view / std::string shim, so the upcoming constexpr const char* env_vars constants read without allocation
  • Added 1-argument get_env<Tp>(env_id) overload returning Tp{} as default
  • Added get_env_choice(env_id, default, std::set<Tp> choices) — validates the env value against an allowed set and falls back to the default on a bad value

source/lib/core/config.hpp

  • Added #include "common/environment.hpp" so the entire core library gets rocprofsys::common::get_env in scope through a single include

source/lib/core/mpi.hpp

  • Replaced #include <timemory/environment/declaration.hpp> with #include "common/environment.hpp"

source/lib/core/dynamic_library.hpp / .cpp

  • Removed the bool _store parameter from the dynamic_library constructor — it was only forwarded to tim::get_env and has no meaning in the common API

Remaining files (config.cpp, perfetto.cpp, trace_cache/discovery.cpp, library.cpp, timeout.cpp, causal/data.cpp, runtime.cpp, dynamic_library.cpp, libpyrocprofsys.cpp)

  • Removed #include <timemory/environment.hpp> / <timemory/environment/types.hpp> where only present for get_env
  • Stripped the _store boolean (third argument of tim::get_env) from all call sites
  • Replaced get_env_choice<T>(..., choices, false) with get_env_choice<T>(..., choices) using the new common implementation

Link the instrumentation tool against the common library

source/bin/rocprof-sys-instrument/CMakeLists.txt

  • Replaced the direct rocprofiler-systems::rocprofiler-systems-spdlog link with rocprofiler-systems::rocprofiler-systems-common-library, which transitively provides the logger/spdlog now used by environment.hpp and aligns this tool with the other source/bin/ targets

The remaining source/bin/ tools (rocprof-sys-avail, rocprof-sys-causal) continue to use tim::get_env via their own using ::tim::get_env declarations and were not changed in this PR. rocprof-sys-instrument only changed its link line (above) to pull the logging dependency from the common library.

No behaviour change is intended — rocprofsys::common::get_env is a plain getenv wrapper. The only observable difference from tim::get_env is that lookups are no longer recorded in timemory's env_settings registry, which is a timemory-internal concern.

Refactor environment layer to be mockable and unit-testable

source/lib/common/environment.hpp

  • Introduced a posix_env backend struct (static getenv / setenv forwarding to ::) representing the real POSIX environment
  • Refactored all get_env_impl / set_env / update_env / remove_env logic into an environment<EnvType = posix_env> template struct, parameterised over the backend
  • Free functions get_env, set_env, update_env, remove_env remain as thin wrappers over environment<posix_env> — call sites are unchanged
  • A test-only fake backend (e.g. struct fake_env { static std::map<...> store; ... }) can be injected without spawning a child process or polluting the real process environment

source/lib/common/tests/test_environment.cpp

  • Rewrote test suites to use the injected fake backend, eliminating all setenv/unsetenv calls that could affect other tests running in the same process
  • Added coverage for: get_env (string, int, bool, size_t, double, 1-arg form), set_env (override semantics), get_env_choice (valid/invalid values)

Fix Python extension undefined symbol

source/python/libpyrocprofsys.cpp

  • libpyrocprofsys.so had an undefined symbol for tim::get_env<bool> after removing tim::get_env usages from librocprof-sys.so: timemory/mpl/policy.hpp pulls in type_traits.hpp which invokes get_env<bool> via TIMEMORY_REPORT_ENV_QUERY, with only environment/types.hpp (declaration) visible — the inline definition had previously been dragged in transitively through the main library's symbol table. Fix: include timemory/environment/definition.hpp before mpl/policy.hpp so the specialisation definition is compiled directly into the extension.

source/lib/common/defines.h.in

  • Fixed macro alignment whitespace flagged by clang-format-18

JIRA ID

Test Plan

  • Full debug build (cmake --build build/debug -j $(nproc)) with all 536 targets
  • Unit tests in source/lib/common/tests/test_environment.cpp extended and rewritten to use injected fake backend

Test Result

  • Build: 536/536 targets, zero errors
  • Unit tests: unit-tests CTest target — 100% pass (0 failures)

Submission Checklist

@mradosav-amd
mradosav-amd force-pushed the users/mradosav-amd/remove-tim-get-env branch from fb2a605 to 1502097 Compare May 18, 2026 14:49
@mradosav-amd
mradosav-amd marked this pull request as ready for review May 19, 2026 11:49
@mradosav-amd
mradosav-amd requested review from a team and jrmadsen as code owners May 19, 2026 11:49
@mradosav-amd
mradosav-amd force-pushed the users/mradosav-amd/remove-tim-get-env branch 2 times, most recently from c897d09 to 4ed65b5 Compare May 27, 2026 08:15
@github-actions

github-actions Bot commented May 27, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage Report

Code Coverage Report

Unit Tests

Code Coverage: unit-tests

Overall: 🔴 6.0%
Lines: 3,457 / 57,667 across 261 files

🔴 0-20% (223 files)
Coverage Lines File
0.0% 0/163 source/bin/common/argument_registration.hpp
0.0% 0/458 source/bin/common/tool_runner.cpp
0.0% 0/1460 source/bin/rocprof-sys-avail/avail.cpp
0.0% 0/187 source/bin/rocprof-sys-avail/avail.hpp
0.0% 0/412 source/bin/rocprof-sys-avail/common.cpp
0.0% 0/42 source/bin/rocprof-sys-avail/component_categories.hpp
0.0% 0/399 source/bin/rocprof-sys-avail/generate_config.cpp
0.0% 0/110 source/bin/rocprof-sys-avail/get_availability.hpp
0.0% 0/30 source/bin/rocprof-sys-avail/get_categories.hpp
0.0% 0/169 source/bin/rocprof-sys-avail/hw_counter_query.cpp
0.0% 0/14 source/bin/rocprof-sys-avail/info_type.cpp
0.0% 0/27 source/bin/rocprof-sys-avail/info_type.hpp
0.0% 0/619 source/bin/rocprof-sys-causal/impl.cpp
0.0% 0/121 source/bin/rocprof-sys-causal/rocprof-sys-causal.cpp
0.0% 0/1110 source/bin/rocprof-sys-instrument/details.cpp
0.0% 0/120 source/bin/rocprof-sys-instrument/function_signature.cpp
0.0% 0/46 source/bin/rocprof-sys-instrument/function_signature.hpp
0.0% 0/221 source/bin/rocprof-sys-instrument/info.hpp
0.0% 0/457 source/bin/rocprof-sys-instrument/internal_libs.cpp
0.0% 0/117 source/bin/rocprof-sys-instrument/log.cpp
0.0% 0/27 source/bin/rocprof-sys-instrument/log.hpp
0.0% 0/906 source/bin/rocprof-sys-instrument/module_function.cpp
0.0% 0/157 source/bin/rocprof-sys-instrument/module_function.hpp
0.0% 0/2434 source/bin/rocprof-sys-instrument/rocprof-sys-instrument.cpp
0.0% 0/386 source/bin/rocprof-sys-instrument/rocprof-sys-instrument.hpp
0.0% 0/8 source/bin/rocprof-sys-run/rocprof-sys-run.cpp
0.0% 0/8 source/bin/rocprof-sys-sample/rocprof-sys-sample.cpp
0.0% 0/43 source/lib/binary/address_multirange.cpp
0.0% 0/27 source/lib/binary/address_multirange.hpp
0.0% 0/232 source/lib/binary/analysis.cpp
0.0% 0/29 source/lib/binary/binary_info.hpp
0.0% 0/178 source/lib/binary/dwarf_entry.cpp
0.0% 0/15 source/lib/binary/dwarf_entry.hpp
0.0% 0/135 source/lib/binary/link_map.cpp
0.0% 0/20 source/lib/binary/link_map.hpp
0.0% 0/19 source/lib/binary/scope_filter.cpp
0.0% 0/27 source/lib/binary/scope_filter.hpp
0.0% 0/291 source/lib/binary/symbol.cpp
0.0% 0/31 source/lib/binary/symbol.hpp
0.0% 0/53 source/lib/common/env_vars.hpp
0.0% 0/77 source/lib/common/invoke.hpp
0.0% 0/321 source/lib/common/md5sum.hpp
0.0% 0/44 source/lib/common/setup.hpp
0.0% 0/84 source/lib/common/static_object.hpp
0.0% 0/57 source/lib/common/synchronized.hpp
0.0% 0/201 source/lib/core/agent_info.hpp
0.0% 0/70 source/lib/core/amd_smi.cpp
0.0% 0/1174 source/lib/core/argparse.cpp
0.0% 0/38 source/lib/core/argparse.hpp
0.0% 0/165 source/lib/core/binary/address_range.cpp
0.0% 0/40 source/lib/core/binary/address_range.hpp
0.0% 0/87 source/lib/core/categories.cpp
0.0% 0/51 source/lib/core/components/fwd.hpp
0.0% 0/185 source/lib/core/config.hpp
0.0% 0/151 source/lib/core/containers/aligned_static_vector.hpp
0.0% 0/67 source/lib/core/containers/c_array.hpp
0.0% 0/60 source/lib/core/containers/operators.hpp
0.0% 0/192 source/lib/core/containers/stable_vector.hpp
0.0% 0/94 source/lib/core/containers/static_vector.hpp
0.0% 0/148 source/lib/core/cpu.cpp
0.0% 0/14 source/lib/core/cpu.hpp
0.0% 0/106 source/lib/core/dynamic_library.cpp
0.0% 0/61 source/lib/core/exception.cpp
0.0% 0/295 source/lib/core/gpu.cpp
0.0% 0/287 source/lib/core/gpu_metrics.cpp
0.0% 0/337 source/lib/core/mpi.hpp
0.0% 0/106 source/lib/core/mproc.cpp
0.0% 0/46 source/lib/core/node_info.cpp
0.0% 0/14 source/lib/core/node_info.hpp
0.0% 0/76 source/lib/core/output_file_registry.cpp
0.0% 0/17 source/lib/core/output_file_registry.hpp
0.0% 0/136 source/lib/core/perf.cpp
0.0% 0/296 source/lib/core/perfetto.cpp
0.0% 0/97 source/lib/core/perfetto.hpp
0.0% 0/20 source/lib/core/progress/bar.hpp
0.0% 0/412 source/lib/core/rocpd/data_processor.cpp
0.0% 0/54 source/lib/core/rocpd/data_processor.hpp
0.0% 0/136 source/lib/core/rocpd/data_storage/database.cpp
0.0% 0/114 source/lib/core/rocpd/data_storage/database.hpp
0.0% 0/67 source/lib/core/rocpd/data_storage/insert_query_builders.hpp
0.0% 0/24 source/lib/core/rocpd/data_storage/table_insert_query.hpp
0.0% 0/568 source/lib/core/rocprofiler-sdk.cpp
0.0% 0/149 source/lib/core/state.cpp
0.0% 0/44 source/lib/core/state.hpp
0.0% 0/73 source/lib/core/trace_cache/cache_manager.cpp
0.0% 0/27 source/lib/core/trace_cache/cache_manager.hpp
0.0% 0/776 source/lib/core/trace_cache/metadata_registry.cpp
0.0% 0/1370 source/lib/core/trace_cache/perfetto_processor.cpp
0.0% 0/161 source/lib/core/trace_cache/post_processor.cpp
0.0% 0/843 source/lib/core/trace_cache/rocpd_processor.cpp
0.0% 0/195 source/lib/core/trace_cache/sample_processor.hpp
0.0% 0/85 source/lib/core/utility.cpp
0.0% 0/154 source/lib/core/utility.hpp
0.0% 0/1163 source/lib/rocprof-sys-dl/dl.cpp
0.0% 0/99 source/lib/rocprof-sys-dl/main.c
0.0% 0/518 source/lib/rocprof-sys-rt/src/RTcommon.c
0.0% 0/60 source/lib/rocprof-sys-rt/src/RTheap-linux.c
0.0% 0/118 source/lib/rocprof-sys-rt/src/RTheap.c
0.0% 0/446 source/lib/rocprof-sys-rt/src/RTlinux.c
0.0% 0/193 source/lib/rocprof-sys-rt/src/RTposix.c
0.0% 0/27 source/lib/rocprof-sys-rt/src/RTsignal.c
0.0% 0/21 source/lib/rocprof-sys-rt/src/RTthread-x86-64.c
0.0% 0/9 source/lib/rocprof-sys-rt/src/RTthread.c
0.0% 0/142 source/lib/rocprof-sys-user/user.cpp
0.0% 0/117 source/lib/rocprof-sys/api.cpp
0.0% 0/1127 source/lib/rocprof-sys/library.cpp
0.0% 0/177 source/lib/rocprof-sys/library/causal/components/backtrace.cpp
0.0% 0/32 source/lib/rocprof-sys/library/causal/components/backtrace.hpp
0.0% 0/191 source/lib/rocprof-sys/library/causal/components/blocking_gotcha.cpp
0.0% 0/70 source/lib/rocprof-sys/library/causal/components/causal_gotcha.cpp
0.0% 0/172 source/lib/rocprof-sys/library/causal/components/progress_point.cpp
0.0% 0/58 source/lib/rocprof-sys/library/causal/components/progress_point.hpp
0.0% 0/84 source/lib/rocprof-sys/library/causal/components/unblocking_gotcha.cpp
0.0% 0/942 source/lib/rocprof-sys/library/causal/data.cpp
0.0% 0/160 source/lib/rocprof-sys/library/causal/delay.cpp
0.0% 0/589 source/lib/rocprof-sys/library/causal/experiment.cpp
0.0% 0/34 source/lib/rocprof-sys/library/causal/experiment.hpp
0.0% 0/49 source/lib/rocprof-sys/library/causal/sample_data.cpp
0.0% 0/511 source/lib/rocprof-sys/library/causal/sampling.cpp
0.0% 0/13 source/lib/rocprof-sys/library/causal/selected_entry.cpp
0.0% 0/20 source/lib/rocprof-sys/library/causal/selected_entry.hpp
0.0% 0/127 source/lib/rocprof-sys/library/components/backtrace.cpp
0.0% 0/19 source/lib/rocprof-sys/library/components/backtrace.hpp
0.0% 0/440 source/lib/rocprof-sys/library/components/backtrace_metrics.cpp
0.0% 0/53 source/lib/rocprof-sys/library/components/backtrace_metrics.hpp
0.0% 0/24 source/lib/rocprof-sys/library/components/backtrace_timestamp.cpp
0.0% 0/22 source/lib/rocprof-sys/library/components/backtrace_timestamp.hpp
0.0% 0/134 source/lib/rocprof-sys/library/components/callchain.cpp
0.0% 0/22 source/lib/rocprof-sys/library/components/callchain.hpp
0.0% 0/358 source/lib/rocprof-sys/library/components/category_region.hpp
0.0% 0/696 source/lib/rocprof-sys/library/components/comm_data.cpp
0.0% 0/106 source/lib/rocprof-sys/library/components/comm_data.hpp
0.0% 0/24 source/lib/rocprof-sys/library/components/ensure_storage.hpp
0.0% 0/62 source/lib/rocprof-sys/library/components/exit_gotcha.cpp
0.0% 0/23 source/lib/rocprof-sys/library/components/exit_gotcha.hpp
0.0% 0/146 source/lib/rocprof-sys/library/components/fork_gotcha.cpp
0.0% 0/20 source/lib/rocprof-sys/library/components/fork_gotcha.hpp
0.0% 0/39 source/lib/rocprof-sys/library/components/kill_gotcha.cpp
0.0% 0/17 source/lib/rocprof-sys/library/components/kill_gotcha.hpp
0.0% 0/315 source/lib/rocprof-sys/library/components/mpi_gotcha.cpp
0.0% 0/36 source/lib/rocprof-sys/library/components/mpi_gotcha.hpp
0.0% 0/659 source/lib/rocprof-sys/library/components/mpip.hpp
0.0% 0/142 source/lib/rocprof-sys/library/components/numa_gotcha.cpp
0.0% 0/22 source/lib/rocprof-sys/library/components/numa_gotcha.hpp
0.0% 0/564 source/lib/rocprof-sys/library/components/pthread_create_gotcha.cpp
0.0% 0/32 source/lib/rocprof-sys/library/components/pthread_create_gotcha.hpp
0.0% 0/76 source/lib/rocprof-sys/library/components/pthread_gotcha.cpp
0.0% 0/51 source/lib/rocprof-sys/library/components/pthread_mutex_gotcha_policy.hpp
0.0% 0/280 source/lib/rocprof-sys/library/components/ucx_gotcha.cpp
0.0% 0/50 source/lib/rocprof-sys/library/components/ucx_gotcha.hpp
0.0% 0/274 source/lib/rocprof-sys/library/components/vaapi_gotcha.cpp
0.0% 0/25 source/lib/rocprof-sys/library/components/vaapi_gotcha.hpp
0.0% 0/270 source/lib/rocprof-sys/library/coverage.cpp
0.0% 0/78 source/lib/rocprof-sys/library/coverage.hpp
0.0% 0/131 source/lib/rocprof-sys/library/coverage/impl.hpp
0.0% 0/481 source/lib/rocprof-sys/library/kokkosp.cpp
0.0% 0/551 source/lib/rocprof-sys/library/perf.cpp
0.0% 0/93 source/lib/rocprof-sys/library/perf.hpp
0.0% 0/334 source/lib/rocprof-sys/library/pmc/collectors/common/settings.hpp
0.0% 0/109 source/lib/rocprof-sys/library/pmc/collectors/cpu/cache_policy.hpp
0.0% 0/103 source/lib/rocprof-sys/library/pmc/collectors/cpu/cpu_traits.hpp
0.0% 0/113 source/lib/rocprof-sys/library/pmc/collectors/cpu/perfetto_policy.hpp
0.0% 0/166 source/lib/rocprof-sys/library/pmc/collectors/gpu/cache_policy.hpp
0.0% 0/140 source/lib/rocprof-sys/library/pmc/collectors/gpu/gpu_driver.hpp
0.0% 0/102 source/lib/rocprof-sys/library/pmc/collectors/gpu/gpu_traits.hpp
0.0% 0/435 source/lib/rocprof-sys/library/pmc/collectors/gpu/perfetto_policy.hpp
0.0% 0/51 source/lib/rocprof-sys/library/pmc/collectors/gpu/sample.hpp
0.0% 0/60 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/cache_policy.hpp
0.0% 0/88 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/perfetto_policy.hpp
0.0% 0/43 source/lib/rocprof-sys/library/pmc/collectors/nic/sample.hpp
0.0% 0/21 source/lib/rocprof-sys/library/pmc/common/types.hpp
0.0% 0/57 source/lib/rocprof-sys/library/pmc/device_providers/amd_smi/drivers/driver.hpp
0.0% 0/156 source/lib/rocprof-sys/library/pmc/device_providers/amd_smi/provider.hpp
0.0% 0/39 source/lib/rocprof-sys/library/pmc/device_providers/procfs/provider.hpp
0.0% 0/98 source/lib/rocprof-sys/library/pmc/device_providers/rocprofiler_sdk/drivers/driver.hpp
0.0% 0/288 source/lib/rocprof-sys/library/pmc/sampler.cpp
0.0% 0/201 source/lib/rocprof-sys/library/process_sampler.cpp
0.0% 0/43 source/lib/rocprof-sys/library/process_sampler.hpp
0.0% 0/12 source/lib/rocprof-sys/library/rocm.cpp
0.0% 0/2351 source/lib/rocprof-sys/library/rocprofiler-sdk.cpp
0.0% 0/166 source/lib/rocprof-sys/library/rocprofiler-sdk/counters.cpp
0.0% 0/68 source/lib/rocprof-sys/library/rocprofiler-sdk/counters.hpp
0.0% 0/213 source/lib/rocprof-sys/library/rocprofiler-sdk/fwd.cpp
0.0% 0/115 source/lib/rocprof-sys/library/rocprofiler-sdk/fwd.hpp
0.0% 0/428 source/lib/rocprof-sys/library/rocprofiler-sdk/kfd_events.cpp
0.0% 0/64 source/lib/rocprof-sys/library/rocprofiler-sdk/marker_writer.cpp
0.0% 0/225 source/lib/rocprof-sys/library/rocprofiler-sdk/rccl.cpp
0.0% 0/224 source/lib/rocprof-sys/library/rocprofiler-sdk/roctx_client.cpp
0.0% 0/214 source/lib/rocprof-sys/library/runtime.cpp
0.0% 0/42 source/lib/rocprof-sys/library/runtime.hpp
0.0% 0/1668 source/lib/rocprof-sys/library/sampling.cpp
0.0% 0/360 source/lib/rocprof-sys/library/thread_data.hpp
0.0% 0/29 source/lib/rocprof-sys/library/thread_data_growth.hpp
0.0% 0/28 source/lib/rocprof-sys/library/thread_deleter.cpp
0.0% 0/18 source/lib/rocprof-sys/library/thread_deleter.hpp
0.0% 0/304 source/lib/rocprof-sys/library/thread_info.cpp
0.0% 0/55 source/lib/rocprof-sys/library/thread_info.hpp
0.0% 0/215 source/lib/rocprof-sys/library/tracing.cpp
0.0% 0/411 source/lib/rocprof-sys/library/tracing.hpp
0.0% 0/10 source/lib/rocprof-sys/library/tracing/annotation.cpp
0.0% 0/159 source/lib/rocprof-sys/library/tracing/annotation.hpp
0.0% 0/17 source/lib/rocprof-sys/progress.cpp
0.0% 0/104 source/lib/rocprof-sys/regions.cpp
0.0% 0/161 source/lib/rocprof-sys/timeout.cpp
0.0% 0/738 source/python/libpyrocprofsys.cpp
0.8% 20/2419 source/lib/core/config.cpp
4.3% 2/47 source/lib/core/constraint.hpp
4.4% 4/91 source/lib/core/trace_cache/metadata_registry.hpp
5.0% 1/20 source/bin/common/json_config.hpp
5.3% 15/283 source/lib/core/constraint.cpp
6.7% 1/15 source/lib/core/progress/tracker.hpp
7.4% 6/81 source/bin/common/common_utils.hpp
9.4% 3/32 source/lib/common/span.hpp
9.5% 2/21 source/lib/rocprof-sys/library/pmc/collectors/cpu/types.hpp
11.1% 4/36 source/lib/core/trace_cache/data_types.hpp
11.8% 2/17 source/lib/core/agent_manager.hpp
12.0% 3/25 source/lib/rocprof-sys/library/rocprofiler-sdk/trace_control.hpp
13.0% 3/23 source/lib/core/agent.hpp
13.3% 15/113 source/lib/core/agent_manager.cpp
13.3% 4/30 source/lib/rocprof-sys/library/pmc/collectors/nic/types.hpp
14.8% 12/81 source/lib/common/join.hpp
15.1% 8/53 source/lib/rocprof-sys/library/pmc/collectors/gpu/types.hpp
19.7% 13/66 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/gpu_perf_counter_traits.hpp
🟠 20-50% (29 files)
Coverage Lines File
22.9% 30/131 source/lib/rocprof-sys/library/pmc/collectors/base/collector.hpp
22.9% 11/48 source/lib/rocprof-sys/library/rocprofiler-sdk/roctx_client.hpp
26.1% 23/88 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/types.hpp
26.7% 165/618 source/bin/common/common_utils.cpp
27.3% 24/88 source/lib/core/trace_cache/unified_memory_processor.hpp
32.3% 30/93 source/lib/core/demangler.hpp
33.3% 10/30 source/lib/core/trace_cache/type_registry.hpp
34.5% 48/139 source/lib/core/trace_cache/discovery.cpp
35.1% 34/97 source/lib/rocprof-sys/library/pmc/collectors/cpu/sample.hpp
35.3% 6/17 source/lib/core/progress/tracker.cpp
35.5% 269/757 source/lib/common/environment.hpp
36.6% 41/112 source/lib/core/trace_cache/storage_parser.hpp
37.0% 70/189 source/lib/core/progress/bar.cpp
37.1% 26/70 source/lib/common/delimit.hpp
37.4% 107/286 source/lib/common/path.hpp
37.6% 65/173 source/lib/core/trace_cache/buffer_storage.hpp
38.4% 43/112 source/lib/core/trace_cache/data_types.cpp
39.0% 48/123 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/device.hpp
40.4% 334/827 source/bin/common/json_config.cpp
40.6% 13/32 source/lib/rocprof-sys/library/pmc/collectors/common/collector_slice.hpp
40.9% 47/115 source/lib/rocprof-sys/library/pmc/collectors/nic/device.hpp
41.7% 55/132 source/lib/core/trace_cache/cacheable.hpp
43.0% 34/79 source/lib/rocprof-sys/library/rocprofiler-sdk/marker_writer.hpp
44.9% 61/136 source/lib/rocprof-sys/library/pmc/device_providers/rocprofiler_sdk/provider.hpp
45.4% 54/119 source/lib/rocprof-sys/library/components/pthread_mutex_gotcha.hpp
45.5% 100/220 source/lib/logger/logger.hpp
45.8% 216/472 source/bin/common/preset_registry.cpp
46.9% 135/288 source/lib/rocprof-sys/library/pmc/device_providers/procfs/drivers/driver.hpp
49.2% 30/61 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/sample.hpp
🟡 50-80% (9 files)
Coverage Lines File
51.1% 93/182 source/lib/rocprof-sys/library/rocprofiler-sdk/trace_control.cpp
51.5% 100/194 source/lib/rocprof-sys/library/pmc/collectors/cpu/device.hpp
52.9% 153/289 source/lib/rocprof-sys/library/pmc/collectors/gpu/device.hpp
53.3% 32/60 source/lib/core/common_types.hpp
53.5% 176/329 source/lib/rocprof-sys/library/components/shmem_gotcha.hpp
53.6% 45/84 source/lib/rocprof-sys/library/rocprofiler-sdk/rccl_internal.hpp
56.0% 243/434 source/lib/core/trace_cache/unified_memory_processor.cpp
56.5% 65/115 source/lib/core/trace_cache/buffer_storage.cpp
67.2% 303/451 source/lib/core/trace_cache/sample_type.hpp

Distribution

Range Files
0-20% 223
20-50% 29
50-80% 9
80-100% 0

E2E Tests

Code Coverage: e2e-tests

Overall: 🔴 32.4%
Lines: 18,710 / 57,667 across 261 files

🔴 0-20% (111 files)
Coverage Lines File
0.0% 0/169 source/bin/rocprof-sys-avail/hw_counter_query.cpp
0.0% 0/321 source/lib/common/md5sum.hpp
0.0% 0/201 source/lib/core/agent_info.hpp
0.0% 0/148 source/lib/core/cpu.cpp
0.0% 0/14 source/lib/core/cpu.hpp
0.0% 0/106 source/lib/core/dynamic_library.cpp
0.0% 0/61 source/lib/core/exception.cpp
0.0% 0/287 source/lib/core/gpu_metrics.cpp
0.0% 0/136 source/lib/core/perf.cpp
0.0% 0/412 source/lib/core/rocpd/data_processor.cpp
0.0% 0/54 source/lib/core/rocpd/data_processor.hpp
0.0% 0/136 source/lib/core/rocpd/data_storage/database.cpp
0.0% 0/114 source/lib/core/rocpd/data_storage/database.hpp
0.0% 0/67 source/lib/core/rocpd/data_storage/insert_query_builders.hpp
0.0% 0/24 source/lib/core/rocpd/data_storage/table_insert_query.hpp
0.0% 0/843 source/lib/core/trace_cache/rocpd_processor.cpp
0.0% 0/27 source/lib/rocprof-sys-rt/src/RTsignal.c
0.0% 0/21 source/lib/rocprof-sys-rt/src/RTthread-x86-64.c
0.0% 0/9 source/lib/rocprof-sys-rt/src/RTthread.c
0.0% 0/23 source/lib/rocprof-sys/library/components/exit_gotcha.hpp
0.0% 0/17 source/lib/rocprof-sys/library/components/kill_gotcha.hpp
0.0% 0/280 source/lib/rocprof-sys/library/components/ucx_gotcha.cpp
0.0% 0/274 source/lib/rocprof-sys/library/components/vaapi_gotcha.cpp
0.0% 0/113 source/lib/rocprof-sys/library/pmc/collectors/cpu/perfetto_policy.hpp
0.0% 0/166 source/lib/rocprof-sys/library/pmc/collectors/gpu/cache_policy.hpp
0.0% 0/140 source/lib/rocprof-sys/library/pmc/collectors/gpu/gpu_driver.hpp
0.0% 0/102 source/lib/rocprof-sys/library/pmc/collectors/gpu/gpu_traits.hpp
0.0% 0/435 source/lib/rocprof-sys/library/pmc/collectors/gpu/perfetto_policy.hpp
0.0% 0/51 source/lib/rocprof-sys/library/pmc/collectors/gpu/sample.hpp
0.0% 0/60 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/cache_policy.hpp
0.0% 0/88 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/perfetto_policy.hpp
0.0% 0/43 source/lib/rocprof-sys/library/pmc/collectors/nic/sample.hpp
0.0% 0/57 source/lib/rocprof-sys/library/pmc/device_providers/amd_smi/drivers/driver.hpp
0.0% 0/156 source/lib/rocprof-sys/library/pmc/device_providers/amd_smi/provider.hpp
0.0% 0/98 source/lib/rocprof-sys/library/pmc/device_providers/rocprofiler_sdk/drivers/driver.hpp
0.0% 0/12 source/lib/rocprof-sys/library/rocm.cpp
0.0% 0/166 source/lib/rocprof-sys/library/rocprofiler-sdk/counters.cpp
0.0% 0/68 source/lib/rocprof-sys/library/rocprofiler-sdk/counters.hpp
0.0% 0/213 source/lib/rocprof-sys/library/rocprofiler-sdk/fwd.cpp
0.0% 0/115 source/lib/rocprof-sys/library/rocprofiler-sdk/fwd.hpp
0.0% 0/428 source/lib/rocprof-sys/library/rocprofiler-sdk/kfd_events.cpp
0.0% 0/225 source/lib/rocprof-sys/library/rocprofiler-sdk/rccl.cpp
0.0% 0/224 source/lib/rocprof-sys/library/rocprofiler-sdk/roctx_client.cpp
0.0% 0/55 source/lib/rocprof-sys/library/thread_info.hpp
0.0% 0/10 source/lib/rocprof-sys/library/tracing/annotation.cpp
0.3% 1/296 source/lib/core/perfetto.cpp
1.4% 33/2351 source/lib/rocprof-sys/library/rocprofiler-sdk.cpp
1.7% 1/60 source/lib/core/containers/operators.hpp
2.0% 1/50 source/lib/rocprof-sys/library/components/ucx_gotcha.hpp
2.9% 2/70 source/lib/core/amd_smi.cpp
4.0% 1/25 source/lib/rocprof-sys/library/components/vaapi_gotcha.hpp
4.5% 2/44 source/lib/core/state.hpp
4.5% 1/22 source/lib/rocprof-sys/library/components/callchain.hpp
4.5% 1/22 source/lib/rocprof-sys/library/components/numa_gotcha.hpp
4.7% 3/64 source/lib/rocprof-sys/library/rocprofiler-sdk/marker_writer.cpp
4.8% 1/21 source/lib/rocprof-sys/library/pmc/common/types.hpp
4.8% 2/42 source/lib/rocprof-sys/library/runtime.hpp
5.0% 1/20 source/bin/common/json_config.hpp
5.0% 1/20 source/lib/core/progress/bar.hpp
5.0% 1/20 source/lib/rocprof-sys/library/components/fork_gotcha.hpp
5.3% 1/19 source/lib/rocprof-sys/library/components/backtrace.hpp
5.6% 2/36 source/lib/rocprof-sys/library/components/mpi_gotcha.hpp
5.7% 9/159 source/lib/rocprof-sys/library/tracing/annotation.hpp
5.9% 1/17 source/lib/core/output_file_registry.hpp
6.0% 8/134 source/lib/rocprof-sys/library/components/callchain.cpp
6.6% 10/151 source/lib/core/containers/aligned_static_vector.hpp
6.7% 1/15 source/lib/binary/dwarf_entry.hpp
6.7% 1/15 source/lib/core/progress/tracker.hpp
6.7% 4/60 source/lib/rocprof-sys-rt/src/RTheap-linux.c
6.7% 30/446 source/lib/rocprof-sys-rt/src/RTlinux.c
7.3% 38/518 source/lib/rocprof-sys-rt/src/RTcommon.c
8.8% 3/34 source/lib/rocprof-sys/library/causal/experiment.hpp
8.9% 30/337 source/lib/core/mpi.hpp
9.4% 3/32 source/lib/common/span.hpp
9.4% 3/32 source/lib/rocprof-sys/library/components/pthread_create_gotcha.hpp
10.5% 4/38 source/lib/core/argparse.hpp
10.7% 83/776 source/lib/core/trace_cache/metadata_registry.cpp
10.8% 32/295 source/lib/core/gpu.cpp
11.1% 4/36 source/lib/core/trace_cache/data_types.hpp
11.1% 49/440 source/lib/rocprof-sys/library/components/backtrace_metrics.cpp
11.8% 2/17 source/lib/core/agent_manager.hpp
11.8% 11/93 source/lib/rocprof-sys/library/perf.hpp
12.0% 3/25 source/lib/rocprof-sys/library/rocprofiler-sdk/trace_control.hpp
12.8% 5/39 source/lib/rocprof-sys/library/components/kill_gotcha.cpp
13.0% 3/23 source/lib/core/agent.hpp
13.3% 4/30 source/lib/rocprof-sys/library/pmc/collectors/nic/types.hpp
13.9% 79/568 source/lib/core/rocprofiler-sdk.cpp
14.0% 27/193 source/lib/rocprof-sys-rt/src/RTposix.c
14.1% 26/185 source/lib/core/config.hpp
14.3% 2/14 source/lib/core/node_info.hpp
14.3% 3/21 source/lib/rocprof-sys/library/pmc/collectors/cpu/types.hpp
14.8% 4/27 source/bin/rocprof-sys-instrument/log.hpp
14.9% 7/47 source/lib/core/constraint.hpp
15.0% 3/20 source/lib/binary/link_map.hpp
15.1% 16/106 source/lib/rocprof-sys/library/components/comm_data.hpp
15.1% 8/53 source/lib/rocprof-sys/library/pmc/collectors/gpu/types.hpp
15.2% 15/99 source/lib/rocprof-sys-dl/main.c
15.8% 9/57 source/lib/common/synchronized.hpp
16.1% 10/62 source/lib/rocprof-sys/library/components/exit_gotcha.cpp
16.4% 11/67 source/lib/core/containers/c_array.hpp
16.7% 4/24 source/lib/rocprof-sys/library/components/backtrace_timestamp.cpp
17.0% 9/53 source/lib/common/env_vars.hpp
17.3% 14/81 source/bin/common/common_utils.hpp
17.4% 58/334 source/lib/rocprof-sys/library/pmc/collectors/common/settings.hpp
18.2% 4/22 source/lib/rocprof-sys/library/components/backtrace_timestamp.hpp
18.5% 5/27 source/lib/binary/scope_filter.hpp
18.6% 8/43 source/lib/binary/address_multirange.cpp
19.2% 79/411 source/lib/rocprof-sys/library/tracing.hpp
19.4% 37/191 source/lib/rocprof-sys/library/causal/components/blocking_gotcha.cpp
19.7% 13/66 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/gpu_perf_counter_traits.hpp
19.8% 18/91 source/lib/core/trace_cache/metadata_registry.hpp
🟠 20-50% (123 files)
Coverage Lines File
20.2% 17/84 source/lib/common/static_object.hpp
20.6% 27/131 source/lib/rocprof-sys/library/coverage/impl.hpp
20.8% 11/53 source/lib/rocprof-sys/library/components/backtrace_metrics.hpp
20.9% 9/43 source/lib/rocprof-sys/library/process_sampler.hpp
21.0% 41/195 source/lib/core/trace_cache/sample_processor.hpp
21.3% 20/94 source/lib/core/containers/static_vector.hpp
21.6% 11/51 source/lib/core/components/fwd.hpp
21.9% 7/32 source/lib/rocprof-sys/library/causal/components/backtrace.hpp
22.5% 9/40 source/lib/core/binary/address_range.hpp
22.7% 311/1370 source/lib/core/trace_cache/perfetto_processor.cpp
22.9% 11/48 source/lib/rocprof-sys/library/rocprofiler-sdk/roctx_client.hpp
23.0% 37/161 source/lib/rocprof-sys/timeout.cpp
23.0% 26/113 source/lib/core/agent_manager.cpp
23.4% 45/192 source/lib/core/containers/stable_vector.hpp
23.5% 4/17 source/lib/rocprof-sys/progress.cpp
24.1% 7/29 source/lib/binary/binary_info.hpp
24.7% 71/288 source/lib/rocprof-sys/library/pmc/sampler.cpp
25.0% 2/8 source/bin/rocprof-sys-run/rocprof-sys-run.cpp
25.0% 2/8 source/bin/rocprof-sys-sample/rocprof-sys-sample.cpp
25.0% 5/20 source/lib/rocprof-sys/library/causal/selected_entry.hpp
25.4% 36/142 source/lib/rocprof-sys/library/components/numa_gotcha.cpp
25.6% 31/121 source/bin/rocprof-sys-causal/rocprof-sys-causal.cpp
25.8% 142/551 source/lib/rocprof-sys/library/perf.cpp
25.8% 8/31 source/lib/binary/symbol.hpp
25.9% 180/696 source/lib/rocprof-sys/library/components/comm_data.cpp
25.9% 7/27 source/lib/core/trace_cache/cache_manager.hpp
26.0% 20/77 source/lib/common/invoke.hpp
26.0% 125/481 source/lib/rocprof-sys/library/kokkosp.cpp
26.1% 23/88 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/types.hpp
26.3% 31/118 source/lib/rocprof-sys-rt/src/RTheap.c
27.3% 24/88 source/lib/core/trace_cache/unified_memory_processor.hpp
27.8% 5/18 source/lib/rocprof-sys/library/thread_deleter.hpp
27.9% 29/104 source/lib/rocprof-sys/regions.cpp
28.2% 40/142 source/lib/rocprof-sys-user/user.cpp
28.6% 4/14 source/bin/rocprof-sys-avail/info_type.cpp
28.6% 8/28 source/lib/rocprof-sys/library/thread_deleter.cpp
28.8% 42/146 source/lib/rocprof-sys/library/components/fork_gotcha.cpp
30.3% 50/165 source/lib/core/binary/address_range.cpp
30.8% 4/13 source/lib/rocprof-sys/library/causal/selected_entry.cpp
30.9% 25/81 source/lib/common/join.hpp
30.9% 30/97 source/lib/core/perfetto.hpp
31.3% 41/131 source/lib/rocprof-sys/library/pmc/collectors/base/collector.hpp
31.6% 24/76 source/lib/rocprof-sys/library/components/pthread_gotcha.cpp
32.6% 72/221 source/bin/rocprof-sys-instrument/info.hpp
32.6% 61/187 source/bin/rocprof-sys-avail/avail.hpp
33.3% 9/27 source/bin/rocprof-sys-avail/info_type.hpp
33.3% 9/27 source/lib/binary/address_multirange.hpp
33.3% 10/30 source/lib/core/trace_cache/type_registry.hpp
33.3% 39/117 source/lib/rocprof-sys/api.cpp
33.3% 13/39 source/lib/rocprof-sys/library/pmc/device_providers/procfs/provider.hpp
33.7% 106/315 source/lib/rocprof-sys/library/components/mpi_gotcha.cpp
33.8% 52/154 source/lib/core/utility.hpp
34.0% 35/103 source/lib/rocprof-sys/library/pmc/collectors/cpu/cpu_traits.hpp
34.2% 132/386 source/bin/rocprof-sys-instrument/rocprof-sys-instrument.hpp
34.3% 24/70 source/lib/rocprof-sys/library/causal/components/causal_gotcha.cpp
34.5% 10/29 source/lib/rocprof-sys/library/thread_data_growth.hpp
34.6% 27/78 source/lib/rocprof-sys/library/coverage.hpp
34.8% 405/1163 source/lib/rocprof-sys-dl/dl.cpp
34.9% 37/106 source/lib/core/mproc.cpp
35.2% 126/358 source/lib/rocprof-sys/library/components/category_region.hpp
35.3% 6/17 source/lib/core/progress/tracker.cpp
35.4% 57/161 source/lib/core/trace_cache/post_processor.cpp
36.2% 54/149 source/lib/core/state.cpp
36.6% 277/757 source/lib/common/environment.hpp
36.7% 18/49 source/lib/rocprof-sys/library/causal/sample_data.cpp
36.8% 60/163 source/bin/common/argument_registration.hpp
36.9% 133/360 source/lib/rocprof-sys/library/thread_data.hpp
37.0% 70/189 source/lib/core/progress/bar.cpp
37.1% 619/1668 source/lib/rocprof-sys/library/sampling.cpp
37.1% 26/70 source/lib/common/delimit.hpp
37.5% 9/24 source/lib/rocprof-sys/library/components/ensure_storage.hpp
37.6% 65/173 source/lib/core/trace_cache/buffer_storage.hpp
37.9% 81/214 source/lib/rocprof-sys/library/runtime.cpp
38.1% 32/84 source/lib/rocprof-sys/library/causal/components/unblocking_gotcha.cpp
38.2% 116/304 source/lib/rocprof-sys/library/thread_info.cpp
38.9% 110/283 source/lib/core/constraint.cpp
39.0% 48/123 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/device.hpp
39.1% 18/46 source/bin/rocprof-sys-instrument/function_signature.hpp
39.3% 53/135 source/lib/binary/link_map.cpp
39.6% 440/1110 source/bin/rocprof-sys-instrument/details.cpp
39.7% 23/58 source/lib/rocprof-sys/library/causal/components/progress_point.hpp
40.1% 69/172 source/lib/rocprof-sys/library/causal/components/progress_point.cpp
40.6% 13/32 source/lib/rocprof-sys/library/pmc/collectors/common/collector_slice.hpp
40.9% 47/115 source/lib/rocprof-sys/library/pmc/collectors/nic/device.hpp
41.0% 48/117 source/bin/rocprof-sys-instrument/log.cpp
41.1% 46/112 source/lib/core/trace_cache/storage_parser.hpp
41.1% 210/511 source/lib/rocprof-sys/library/causal/sampling.cpp
41.3% 118/286 source/lib/common/path.hpp
41.3% 19/46 source/lib/core/node_info.cpp
41.7% 55/132 source/lib/core/trace_cache/cacheable.hpp
41.8% 74/177 source/lib/rocprof-sys/library/causal/components/backtrace.cpp
42.7% 47/110 source/bin/rocprof-sys-avail/get_availability.hpp
42.9% 404/942 source/lib/rocprof-sys/library/causal/data.cpp
43.0% 40/93 source/lib/core/demangler.hpp
43.0% 34/79 source/lib/rocprof-sys/library/rocprofiler-sdk/marker_writer.hpp
43.2% 19/44 source/lib/common/setup.hpp
43.3% 488/1127 source/lib/rocprof-sys/library.cpp
43.4% 268/618 source/bin/common/common_utils.cpp
44.0% 325/738 source/python/libpyrocprofsys.cpp
44.3% 203/458 source/bin/common/tool_runner.cpp
44.9% 61/136 source/lib/rocprof-sys/library/pmc/device_providers/rocprofiler_sdk/provider.hpp
45.1% 23/51 source/lib/rocprof-sys/library/components/pthread_mutex_gotcha_policy.hpp
45.5% 208/457 source/bin/rocprof-sys-instrument/internal_libs.cpp
45.9% 101/220 source/lib/logger/logger.hpp
46.0% 134/291 source/lib/binary/symbol.cpp
46.1% 190/412 source/bin/rocprof-sys-avail/common.cpp
46.2% 74/160 source/lib/rocprof-sys/library/causal/delay.cpp
46.5% 421/906 source/bin/rocprof-sys-instrument/module_function.cpp
47.1% 40/85 source/lib/core/utility.cpp
47.1% 56/119 source/lib/rocprof-sys/library/components/pthread_mutex_gotcha.hpp
47.2% 223/472 source/bin/common/preset_registry.cpp
47.4% 9/19 source/lib/binary/scope_filter.cpp
47.5% 393/827 source/bin/common/json_config.cpp
47.8% 96/201 source/lib/rocprof-sys/library/process_sampler.cpp
47.8% 129/270 source/lib/rocprof-sys/library/coverage.cpp
48.2% 67/139 source/lib/core/trace_cache/discovery.cpp
48.3% 86/178 source/lib/binary/dwarf_entry.cpp
48.4% 104/215 source/lib/rocprof-sys/library/tracing.cpp
48.4% 1178/2434 source/bin/rocprof-sys-instrument/rocprof-sys-instrument.cpp
49.0% 141/288 source/lib/rocprof-sys/library/pmc/device_providers/procfs/drivers/driver.hpp
49.1% 1187/2419 source/lib/core/config.cpp
49.2% 30/61 source/lib/rocprof-sys/library/pmc/collectors/gpu_perf_counter/sample.hpp
49.3% 36/73 source/lib/core/trace_cache/cache_manager.cpp
🟡 50-80% (26 files)
Coverage Lines File
50.0% 21/42 source/bin/rocprof-sys-avail/component_categories.hpp
50.2% 283/564 source/lib/rocprof-sys/library/components/pthread_create_gotcha.cpp
50.4% 64/127 source/lib/rocprof-sys/library/components/backtrace.cpp
51.0% 80/157 source/bin/rocprof-sys-instrument/module_function.hpp
51.3% 39/76 source/lib/core/output_file_registry.cpp
52.2% 95/182 source/lib/rocprof-sys/library/rocprofiler-sdk/trace_control.cpp
52.6% 102/194 source/lib/rocprof-sys/library/pmc/collectors/cpu/device.hpp
52.9% 153/289 source/lib/rocprof-sys/library/pmc/collectors/gpu/device.hpp
53.0% 123/232 source/lib/binary/analysis.cpp
53.3% 32/60 source/lib/core/common_types.hpp
53.5% 176/329 source/lib/rocprof-sys/library/components/shmem_gotcha.hpp
53.6% 45/84 source/lib/rocprof-sys/library/rocprofiler-sdk/rccl_internal.hpp
53.7% 316/589 source/lib/rocprof-sys/library/causal/experiment.cpp
55.4% 62/112 source/lib/core/trace_cache/data_types.cpp
56.0% 243/434 source/lib/core/trace_cache/unified_memory_processor.cpp
56.3% 49/87 source/lib/core/categories.cpp
56.5% 65/115 source/lib/core/trace_cache/buffer_storage.cpp
58.9% 235/399 source/bin/rocprof-sys-avail/generate_config.cpp
59.8% 58/97 source/lib/rocprof-sys/library/pmc/collectors/cpu/sample.hpp
60.0% 18/30 source/bin/rocprof-sys-avail/get_categories.hpp
60.1% 878/1460 source/bin/rocprof-sys-avail/avail.cpp
60.6% 66/109 source/lib/rocprof-sys/library/pmc/collectors/cpu/cache_policy.hpp
62.7% 736/1174 source/lib/core/argparse.cpp
62.8% 389/619 source/bin/rocprof-sys-causal/impl.cpp
67.2% 303/451 source/lib/core/trace_cache/sample_type.hpp
69.2% 83/120 source/bin/rocprof-sys-instrument/function_signature.cpp
🟢 80-100% (1 files)
Coverage Lines File
80.9% 533/659 source/lib/rocprof-sys/library/components/mpip.hpp

Distribution

Range Files
0-20% 111
20-50% 123
50-80% 26
80-100% 1

@mradosav-amd
mradosav-amd force-pushed the users/mradosav-amd/remove-tim-get-env branch from 025187c to b19e023 Compare May 28, 2026 09:42
mradosav-amd and others added 6 commits June 1, 2026 12:10
libpyrocprofsys.so had an undefined symbol for tim::get_env<bool> because:
- timemory/mpl/policy.hpp includes mpl/type_traits.hpp which calls get_env<bool>
  via TIMEMORY_REPORT_ENV_QUERY, with only environment/types.hpp visible
  (explicit specialization declaration, no definition)
- previously librocprof-sys.so exported this symbol by pulling it from
  timemory-cxx-static; after removing tim::get_env usages from the library,
  the linker dropped the symbol from the export table
- fix: include timemory/environment/definition.hpp before mpl/policy.hpp so
  the inline specialization definition is compiled into libpyrocprofsys.so

Also fix clang-format violation in defines.h.in (macro alignment whitespace).

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@mradosav-amd
mradosav-amd force-pushed the users/mradosav-amd/remove-tim-get-env branch from b19e023 to c89cd15 Compare June 1, 2026 10:13
@sputhala-amd

Copy link
Copy Markdown
Contributor

LGTM. There is a workflow failure due to another project (compute component). I have re-run the workflow.
Leaving for others to have a look and approve.

@dgaliffiAMD dgaliffiAMD 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.

Thank you.

@dgaliffiAMD
dgaliffiAMD merged commit e107d64 into develop Jun 2, 2026
86 of 92 checks passed
@dgaliffiAMD
dgaliffiAMD deleted the users/mradosav-amd/remove-tim-get-env branch June 2, 2026 19:28
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.

6 participants