Skip to main content

FtraceCpuStats

Struct FtraceCpuStats 

Source
pub struct FtraceCpuStats {
    pub cpu: Option<u64>,
    pub entries: Option<u64>,
    pub overrun: Option<u64>,
    pub commit_overrun: Option<u64>,
    pub bytes_read: Option<u64>,
    pub oldest_event_ts: Option<f64>,
    pub now_ts: Option<f64>,
    pub dropped_events: Option<u64>,
    pub read_events: Option<u64>,
}
Expand description

Per-CPU kernel buffer stats for the ftrace data source gathered from /sys/kernel/tracing/per_cpu/cpuX/stats.

Fields§

§cpu: Option<u64>

CPU index.

§entries: Option<u64>

Number of entries currently in the kernel buffer.

§overrun: Option<u64>

Number of events lost in kernel buffers due to overwriting of old events before userspace had a chance to drain them. Valid if the buffer is in “overwrite” mode, otherwise see |dropped_events|.

§commit_overrun: Option<u64>

This should always be zero. If not the buffer size is way too small or something went wrong with the tracer. Quoting the kernel: “number of commits failing due to the buffer wrapping around while there are uncommitted events, such as during an interrupt storm”.

§bytes_read: Option<u64>

Size of entries currently in the kernel buffer (see |entries|) in bytes. The field should be named “bytes”, but is misnamed for historical reasons. This value has known inaccuracies before Linux v6.6: https://github.com/torvalds/linux/commit/45d99ea

§oldest_event_ts: Option<f64>

The timestamp for the oldest event still in the ring buffer. Unit: seconds for typical trace clocks (i.e. not tsc/counter).

§now_ts: Option<f64>

The current timestamp. Unit: seconds for typical trace clocks (i.e. not tsc/counter).

§dropped_events: Option<u64>

If the kernel buffer has overwrite mode disabled, this will show the number of new events that were lost because the buffer was full. This is similar to |overrun| but only for the overwrite=false case.

§read_events: Option<u64>

The number of events read (consumed) from the buffer by userspace.

Implementations§

Source§

impl FtraceCpuStats

Source

pub fn cpu(&self) -> u64

Returns the value of cpu, or the default value if cpu is unset.

Source

pub fn entries(&self) -> u64

Returns the value of entries, or the default value if entries is unset.

Source

pub fn overrun(&self) -> u64

Returns the value of overrun, or the default value if overrun is unset.

Source

pub fn commit_overrun(&self) -> u64

Returns the value of commit_overrun, or the default value if commit_overrun is unset.

Source

pub fn bytes_read(&self) -> u64

Returns the value of bytes_read, or the default value if bytes_read is unset.

Source

pub fn oldest_event_ts(&self) -> f64

Returns the value of oldest_event_ts, or the default value if oldest_event_ts is unset.

Source

pub fn now_ts(&self) -> f64

Returns the value of now_ts, or the default value if now_ts is unset.

Source

pub fn dropped_events(&self) -> u64

Returns the value of dropped_events, or the default value if dropped_events is unset.

Source

pub fn read_events(&self) -> u64

Returns the value of read_events, or the default value if read_events is unset.

Trait Implementations§

Source§

impl Clone for FtraceCpuStats

Source§

fn clone(&self) -> FtraceCpuStats

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FtraceCpuStats

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for FtraceCpuStats

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Message for FtraceCpuStats

Source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
Source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message to a buffer. Read more
Source§

fn encode_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message to a newly allocated buffer.
Source§

fn encode_length_delimited( &self, buf: &mut impl BufMut, ) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
Source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
Source§

fn decode(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes an instance of the message from a buffer. Read more
Source§

fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes a length-delimited instance of the message from the buffer.
Source§

fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
Source§

fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
Source§

impl PartialEq for FtraceCpuStats

Source§

fn eq(&self, other: &FtraceCpuStats) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for FtraceCpuStats

Source§

impl StructuralPartialEq for FtraceCpuStats

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.