20#ifndef REALM_SAMPLING_IMPL_H
21#define REALM_SAMPLING_IMPL_H
28 class SamplingProfilerImpl;
61 bool nonempty_only =
false) = 0;
92 bool nonempty_only =
false);
112 template <
typename T>
137 template <
typename T>
Definition sampling_impl.h:113
virtual GaugeSampler * create_sampler(int sampler_id, SamplingProfilerImpl *profiler, SampleFile::PacketNewGauge *info)
DelayedGaugeAdditionImpl(ProfilingGauges::Gauge *_gauge, DelayedGaugeAddition *_next)
Definition sampling_impl.h:100
DelayedGaugeAddition * next
Definition sampling_impl.h:109
virtual ~DelayedGaugeAddition(void)
DelayedGaugeAddition(ProfilingGauges::Gauge *_gauge, DelayedGaugeAddition *_next)
ProfilingGauges::Gauge * gauge
Definition sampling_impl.h:108
virtual GaugeSampler * create_sampler(int sampler_id, SamplingProfilerImpl *profiler, SampleFile::PacketNewGauge *info)=0
Definition sampling_impl.h:44
virtual void write_data(int fd)
GaugeSampleBufferImpl(int _sampler_id, size_t _reserve)
std::vector< typename T::Sample > samples
Definition sampling_impl.h:50
std::vector< unsigned short > run_lengths
Definition sampling_impl.h:51
Definition sampling_impl.h:30
int first_sample
Definition sampling_impl.h:39
virtual void write_data(int fd)=0
GaugeSampleBuffer(int _sampler_id)
int compressed_len
Definition sampling_impl.h:38
virtual ~GaugeSampleBuffer(void)
int sampler_id
Definition sampling_impl.h:37
int last_sample
Definition sampling_impl.h:40
Definition sampling_impl.h:85
T * gauge
Definition sampling_impl.h:95
virtual bool sample_gauge(int sample_index)
GaugeSampleBufferImpl< T > * buffer
Definition sampling_impl.h:97
GaugeSamplerImpl(int _sampler_id, SamplingProfilerImpl *_profiler, T *_gauge, SampleFile::PacketNewGauge *info)
virtual GaugeSampleBuffer * buffer_swap(size_t new_buffer_size, bool nonempty_only=false)
size_t buffer_size
Definition sampling_impl.h:96
Definition sampling_impl.h:54
virtual ~GaugeSampler(void)
bool gauge_exists
Definition sampling_impl.h:80
void perform_sample(ProfilingGauges::EventCounter< T > &gauge, typename ProfilingGauges::EventCounter< T >::Sample &sample)
SamplingProfilerImpl * profiler
Definition sampling_impl.h:78
virtual bool sample_gauge(int sample_index)=0
virtual GaugeSampleBuffer * buffer_swap(size_t new_buffer_size, bool nonempty_only=false)=0
void perform_sample(ProfilingGauges::AbsoluteRangeGauge< T > &gauge, typename ProfilingGauges::AbsoluteRangeGauge< T >::Sample &sample)
void perform_sample(ProfilingGauges::AbsoluteGauge< T > &gauge, typename ProfilingGauges::AbsoluteGauge< T >::Sample &sample)
int sampler_id
Definition sampling_impl.h:77
GaugeSampler * next
Definition sampling_impl.h:81
Mutex mutex
Definition sampling_impl.h:79
GaugeSampler(int _sampler_id, SamplingProfilerImpl *_profiler)
Definition sampling.h:111
Definition sampling.h:148
Definition sampling_impl.h:121
atomic< int > next_sampler_id
Definition sampling_impl.h:154
CoreReservation * core_rsrv
Definition sampling_impl.h:168
~SamplingProfilerImpl(void)
bool is_default
Definition sampling_impl.h:147
bool is_shut_down
Definition sampling_impl.h:149
Mutex mutex
Definition sampling_impl.h:148
bool pattern_match(const std::string &name) const
void configure_from_cmdline(std::vector< std::string > &cmdline, CoreReservationSet &crs)
Thread * sampling_thread
Definition sampling_impl.h:169
bool cfg_enabled
Definition sampling_impl.h:150
bool parse_profile_pattern(const std::string &s)
int output_fd
Definition sampling_impl.h:170
size_t cfg_buffer_size
Definition sampling_impl.h:152
std::vector< SampleFile::PacketNewGauge * > new_sampler_infos
Definition sampling_impl.h:160
void remove_gauge(ProfilingGauges::Gauge *gauge, GaugeSampler *sampler)
GaugeSampler * add_gauge(T *gauge)
ProfilingGauges::AbsoluteGauge< long long > * sampling_start
Definition sampling_impl.h:172
DelayedGaugeAddition * delayed_additions
Definition sampling_impl.h:166
ProfilingGauges::EventCounter< long long > * sampling_time
Definition sampling_impl.h:173
SamplingProfilerImpl(bool _is_default)
atomic< int > next_sample_index
Definition sampling_impl.h:155
bool flush_requested
Definition sampling_impl.h:171
std::vector< std::string > cfg_patterns
Definition sampling_impl.h:153
GaugeSampler ** sampler_tail
Definition sampling_impl.h:162
GaugeSampler * sampler_head
Definition sampling_impl.h:161
size_t cfg_sample_interval
Definition sampling_impl.h:151
static SamplingProfiler & get_profiler(void)
bool is_configured
Definition sampling_impl.h:149
Definition sampling.h:173
Definition activemsg.h:38
Definition sampling.h:127
Definition sampling.h:159
Definition sampling.h:211