[rocprofiler-systems] Enable HOST OMPVV runtime-instrumentation CTests (#1970)

* Enable HOST ompvv runtime-instrumentation ctests

* Fix rocprofiler-systems-avail-regex-negation test failure

* Exclude problematic function from instrumentation

* Make push pop skip an env option for ctests

* Remove SKIP_PUSH_POP_CHECK from argument parse

Co-authored-by: David Galiffi <David.Galiffi@amd.com>

---------

Co-authored-by: David Galiffi <David.Galiffi@amd.com>
此提交包含在:
Kian Cossettini和David Galiffi authored and GitHub committed 2025-12-01 09:26:24 -05:00
1 父節點 77f58ceb9f
當前提交 ae29018bb0
6 file changed
+28 -6

No files matched your search

+7 -1
查看文件
@@ -577,6 +577,11 @@ module_function::is_routine_constrained() const
"S)_|::basic_string[a-zA-Z,<>: ]+::_M_create|::__|::_(Alloc|State)|"
"std::(basic_|)(ifstream|ios|istream|ostream|stream))",
regex_opts);
static std::regex exclude_fortran(
"(log2visit|Log2VisitHelper)", // From LLVM's libFortranRuntime.a library
regex_opts);
static std::regex leading(
"^(\\.|frame_dummy|transaction clone|virtual thunk|non-virtual thunk|"
"\\(|targ|kmp_threadprivate_|Kokkos::Profiling::|_IO_|___|"
@@ -597,7 +602,8 @@ module_function::is_routine_constrained() const
// don't instrument the functions when key is found anywhere in function name
if(std::regex_search(function_name, exclude) ||
std::regex_search(function_name, exclude_cxx))
std::regex_search(function_name, exclude_cxx) ||
std::regex_search(function_name, exclude_fortran))
{
return _report("Excluding", "critical", 3);
}
+6
查看文件
@@ -271,6 +271,12 @@ configure_settings(bool _init)
"for continuous integration)",
false, "debugging", "advanced");
ROCPROFSYS_CONFIG_SETTING(
bool, "ROCPROFSYS_CI_SKIP_PUSH_POP_CHECK",
"Skip CI validation check for push/pop trace count mismatch "
"(used only for tests with known imbalances)",
false, "debugging", "advanced");
ROCPROFSYS_CONFIG_SETTING(bool, "ROCPROFSYS_MONOCHROME", "Disable colorized logging",
false, "debugging", "advanced");
+3 -1
查看文件
@@ -1072,7 +1072,9 @@ rocprofsys_finalize_hidden(void)
}
ROCPROFSYS_CI_THROW(
_push_count > _pop_count, "%s",
_push_count > _pop_count &&
!get_env("ROCPROFSYS_CI_SKIP_PUSH_POP_CHECK", false, false),
"%s",
TIMEMORY_JOIN(" ",
"rocprofsys_push_trace was called more times than "
"rocprofsys_pop_trace. The inverse is fine but the current state "
@@ -145,6 +145,10 @@ using tim::type_list;
// these categories increment push/pop counts, which are used for sanity checks since
// they should ALWAYS be popped if they were pushed
// Note: There is a known imbalance in the push/pop counts for category::host when using
// OpenMP Tools (OMPT).
// In general, for known imbalances, add ROCPROFSYS_CI_SKIP_PUSH_POP_CHECK=ON to the
// ctest environment to avoid the CI_THROW check.
using tracing_count_categories_t =
type_list<category::host, category::mpi, category::pthread, category::rocm_hip_api,
category::rocm_hsa_api, category::rocm_rccl>;