[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>
此提交包含在:
1 父節點
77f58ceb9f
當前提交
ae29018bb0
6 file changed
+28
-6
No files matched your search
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
@@ -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>;
|
||||
|
||||
Reference in new issue
封鎖使用者