Sampling use SIGRTMIN + N signals (#104)
* Use SIGRTMIN instead of SIGALRM for sampling
* Config options + fully working SIGRTMIN sampling
- OMNITRACE_SAMPLING_KEEP_INTERNAL config option
- OMNITRACE_PROCESS_SAMPLING_FREQ config option
- OMNITRACE_SAMPLING_REALTIME config option
- OMNITRACE_SAMPLING_CPUTIME config option
- OMNITRACE_SAMPLING_REALTIME_OFFSET config option
* Fix omnitrace-avail-regex-negation test
- OMNITRACE_PROCESS_SAMPLING_FREQ was causing failure
[ROCm/rocprofiler-systems commit: d27f22ea37]
This commit is contained in:
1 parent
f2bcca54f6
commit
df20526aac
10 files changed
+198
-45
No files matched your search
@@ -25,6 +25,7 @@
|
||||
#include "library/config.hpp"
|
||||
#include "library/debug.hpp"
|
||||
#include "library/ptl.hpp"
|
||||
#include "library/runtime.hpp"
|
||||
|
||||
#include <timemory/backends/papi.hpp>
|
||||
#include <timemory/backends/threading.hpp>
|
||||
@@ -124,10 +125,7 @@ unique_ptr_t<std::set<int>>&
|
||||
get_signal_types(int64_t _tid)
|
||||
{
|
||||
static auto& _v = signal_type_instances::instances();
|
||||
// on the main thread, use both SIGALRM and SIGPROF.
|
||||
// on secondary threads, only use SIGPROF.
|
||||
signal_type_instances::construct((_tid == 0) ? std::set<int>{ SIGALRM, SIGPROF }
|
||||
: std::set<int>{ SIGPROF });
|
||||
signal_type_instances::construct(omnitrace::get_sampling_signals(_tid));
|
||||
return _v.at(_tid);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user