pub struct SysStatsConfig {Show 14 fields
pub meminfo_period_ms: Option<u32>,
pub meminfo_counters: Vec<i32>,
pub vmstat_period_ms: Option<u32>,
pub vmstat_counters: Vec<i32>,
pub stat_period_ms: Option<u32>,
pub stat_counters: Vec<i32>,
pub devfreq_period_ms: Option<u32>,
pub cpufreq_period_ms: Option<u32>,
pub buddyinfo_period_ms: Option<u32>,
pub diskstat_period_ms: Option<u32>,
pub psi_period_ms: Option<u32>,
pub thermal_period_ms: Option<u32>,
pub cpuidle_period_ms: Option<u32>,
pub gpufreq_period_ms: Option<u32>,
}Expand description
This file defines the configuration for the Linux /proc poller data source, which injects counters in the trace. Counters that are needed in the trace must be explicitly listed in the _counters fields. This is to avoid spamming the trace with all counters at all times. The sampling rate is configurable. All polling rates (_period_ms) need to be integer multiples of each other. OK: [10ms, 10ms, 10ms], [10ms, 20ms, 10ms], [10ms, 20ms, 60ms] Not OK: [10ms, 10ms, 11ms], [10ms, 15ms, 20ms]
Fields§
§meminfo_period_ms: Option<u32>Polls /proc/meminfo every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. Cost: 0.3 ms [read] + 0.07 ms [parse + trace injection]
meminfo_counters: Vec<i32>If empty all known counters are reported. Otherwise, only the counters specified below are reported.
vmstat_period_ms: Option<u32>Polls /proc/vmstat every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. Cost: 0.2 ms [read] + 0.3 ms [parse + trace injection]
vmstat_counters: Vec<i32>§stat_period_ms: Option<u32>Pols /proc/stat every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. Cost: 4.1 ms [read] + 1.9 ms [parse + trace injection]
stat_counters: Vec<i32>§devfreq_period_ms: Option<u32>Polls /sys/devfreq/*/curfreq every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. This option can be used to record unchanging values. Updates from frequency changes can come from ftrace/set_clock_rate.
cpufreq_period_ms: Option<u32>Polls /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq every X ms. This is required to be > 10ms to avoid excessive CPU usage.
buddyinfo_period_ms: Option<u32>Polls /proc/buddyinfo every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.
diskstat_period_ms: Option<u32>Polls /proc/diskstats every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.
psi_period_ms: Option<u32>Polls /proc/pressure/* every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.
thermal_period_ms: Option<u32>Polls /sys/class/thermal/* every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.
cpuidle_period_ms: Option<u32>Polls /sys/devices/system/cpu/cpu*/cpuidle/state* every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.
gpufreq_period_ms: Option<u32>Polls device-specific GPU frequency info every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage.
Implementations§
Source§impl SysStatsConfig
impl SysStatsConfig
Sourcepub fn meminfo_period_ms(&self) -> u32
pub fn meminfo_period_ms(&self) -> u32
Returns the value of meminfo_period_ms, or the default value if meminfo_period_ms is unset.
Sourcepub fn meminfo_counters(
&self,
) -> FilterMap<Cloned<Iter<'_, i32>>, fn(i32) -> Option<MeminfoCounters>>
pub fn meminfo_counters( &self, ) -> FilterMap<Cloned<Iter<'_, i32>>, fn(i32) -> Option<MeminfoCounters>>
Returns an iterator which yields the valid enum values contained in meminfo_counters.
Sourcepub fn push_meminfo_counters(&mut self, value: MeminfoCounters)
pub fn push_meminfo_counters(&mut self, value: MeminfoCounters)
Appends the provided enum value to meminfo_counters.
Sourcepub fn vmstat_period_ms(&self) -> u32
pub fn vmstat_period_ms(&self) -> u32
Returns the value of vmstat_period_ms, or the default value if vmstat_period_ms is unset.
Sourcepub fn vmstat_counters(
&self,
) -> FilterMap<Cloned<Iter<'_, i32>>, fn(i32) -> Option<VmstatCounters>>
pub fn vmstat_counters( &self, ) -> FilterMap<Cloned<Iter<'_, i32>>, fn(i32) -> Option<VmstatCounters>>
Returns an iterator which yields the valid enum values contained in vmstat_counters.
Sourcepub fn push_vmstat_counters(&mut self, value: VmstatCounters)
pub fn push_vmstat_counters(&mut self, value: VmstatCounters)
Appends the provided enum value to vmstat_counters.
Sourcepub fn stat_period_ms(&self) -> u32
pub fn stat_period_ms(&self) -> u32
Returns the value of stat_period_ms, or the default value if stat_period_ms is unset.
Sourcepub fn stat_counters(
&self,
) -> FilterMap<Cloned<Iter<'_, i32>>, fn(i32) -> Option<StatCounters>>
pub fn stat_counters( &self, ) -> FilterMap<Cloned<Iter<'_, i32>>, fn(i32) -> Option<StatCounters>>
Returns an iterator which yields the valid enum values contained in stat_counters.
Sourcepub fn push_stat_counters(&mut self, value: StatCounters)
pub fn push_stat_counters(&mut self, value: StatCounters)
Appends the provided enum value to stat_counters.
Sourcepub fn devfreq_period_ms(&self) -> u32
pub fn devfreq_period_ms(&self) -> u32
Returns the value of devfreq_period_ms, or the default value if devfreq_period_ms is unset.
Sourcepub fn cpufreq_period_ms(&self) -> u32
pub fn cpufreq_period_ms(&self) -> u32
Returns the value of cpufreq_period_ms, or the default value if cpufreq_period_ms is unset.
Sourcepub fn buddyinfo_period_ms(&self) -> u32
pub fn buddyinfo_period_ms(&self) -> u32
Returns the value of buddyinfo_period_ms, or the default value if buddyinfo_period_ms is unset.
Sourcepub fn diskstat_period_ms(&self) -> u32
pub fn diskstat_period_ms(&self) -> u32
Returns the value of diskstat_period_ms, or the default value if diskstat_period_ms is unset.
Sourcepub fn psi_period_ms(&self) -> u32
pub fn psi_period_ms(&self) -> u32
Returns the value of psi_period_ms, or the default value if psi_period_ms is unset.
Sourcepub fn thermal_period_ms(&self) -> u32
pub fn thermal_period_ms(&self) -> u32
Returns the value of thermal_period_ms, or the default value if thermal_period_ms is unset.
Sourcepub fn cpuidle_period_ms(&self) -> u32
pub fn cpuidle_period_ms(&self) -> u32
Returns the value of cpuidle_period_ms, or the default value if cpuidle_period_ms is unset.
Sourcepub fn gpufreq_period_ms(&self) -> u32
pub fn gpufreq_period_ms(&self) -> u32
Returns the value of gpufreq_period_ms, or the default value if gpufreq_period_ms is unset.
Trait Implementations§
Source§impl Clone for SysStatsConfig
impl Clone for SysStatsConfig
Source§fn clone(&self) -> SysStatsConfig
fn clone(&self) -> SysStatsConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SysStatsConfig
impl Debug for SysStatsConfig
Source§impl Default for SysStatsConfig
impl Default for SysStatsConfig
Source§impl Hash for SysStatsConfig
impl Hash for SysStatsConfig
Source§impl Message for SysStatsConfig
impl Message for SysStatsConfig
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.