Fix sampling counter time scales (#33)
* Fix sampling counter time scales - All perfetto trace events have "begin_ns" and "end_ns" debug fields - data for thread start and end timestamp in pthread_create_gotcha - discard samples outside of thread start and end timestamps - rename "CPU User CPU Time" perfetto counter to "CPU User Time" - rename "CPU Kernel CPU Time" perfetto counter to "CPU Kernel Time" - ensure CPU system samples in perfetto are set to zero at end - backtrace uses comp::wall_clock record() for timestamps (consistency) - "Peak Memory Usage [Thread X] (S)" renamed to "Thread Peak Memory Usage [X] (S)" - "Context Switches [Thread X] (S)" renamed to "Thread Context Switches Usage [X] (S)" - "Page Faults [Thread X] (S)" renamed to "Thread Page Faults Usage [X] (S)" - "<PAPI_DESC> [Thread X] (S)" renamed to "Thread <PAPI_DESC> [X] (S)" - samples * Fix includes
This commit is contained in:
committed by
GitHub
parent
a640fbdb29
commit
90ab7a89fc
@@ -24,6 +24,7 @@
|
||||
|
||||
#include "library/common.hpp"
|
||||
#include "library/defines.hpp"
|
||||
#include "library/thread_data.hpp"
|
||||
#include "library/timemory.hpp"
|
||||
|
||||
#include <cstdint>
|
||||
@@ -64,8 +65,22 @@ struct pthread_create_gotcha : tim::component::base<pthread_create_gotcha, void>
|
||||
// pthread_create
|
||||
int operator()(pthread_t* thread, const pthread_attr_t* attr,
|
||||
void* (*start_routine)(void*), void* arg) const;
|
||||
|
||||
static auto& get_execution_time(int64_t _tid = threading::get_id());
|
||||
static bool is_valid_execution_time(int64_t _tid, uint64_t _ts);
|
||||
};
|
||||
|
||||
inline auto&
|
||||
pthread_create_gotcha::get_execution_time(int64_t _tid)
|
||||
{
|
||||
struct omnitrace_thread_exec_time
|
||||
{};
|
||||
using data_t = std::pair<uint64_t, uint64_t>;
|
||||
using thread_data_t = thread_data<data_t, omnitrace_thread_exec_time>;
|
||||
static auto& _v = thread_data_t::instances(thread_data_t::construct_on_init{});
|
||||
return _v.at(_tid);
|
||||
}
|
||||
|
||||
using pthread_create_gotcha_t =
|
||||
tim::component::gotcha<2, std::tuple<>, pthread_create_gotcha>;
|
||||
} // namespace omnitrace
|
||||
|
||||
Reference in New Issue
Block a user