Enum Software

Source
pub enum Software {
    CpuClock,
    TaskClock,
    PageFault,
    MinorPageFault,
    MajorPageFault,
    EmuFault,
    AlignFault,
    CtxSwitch,
    CgroupSwitch,
    Dummy,
    BpfOutput,
    CpuMigration,
}
Expand description

Software events provided by the kernel.

Variants§

§

CpuClock

This reports the CPU clock, a high-resolution per-CPU timer.

§

TaskClock

This reports a clock count specific to the task that is running (in nanoseconds).

§

PageFault

The number of page faults.

§

MinorPageFault

The number of minor page faults. These did not require disk I/O to handle.

§

MajorPageFault

The number of major page faults. These required disk I/O to handle.

§

EmuFault

The number of emulation faults.

The kernel sometimes traps on unimplemented instructions and emulates them for user space. This can negatively impact performance.

§

AlignFault

The number of alignment faults.

These happen when unaligned memory accesses happen; the kernel can handle these but it reduces performance. This happens only on some architectures (never on x86).

§

CtxSwitch

This number of context switches.

§

CgroupSwitch

This counts context switches to a task in a different cgroup.

In other words, if the next task is in the same cgroup, it won’t count the switch.

Since linux-5.13: https://github.com/torvalds/linux/commit/d0d1dd628527c77db2391ce0293c1ed344b2365f

§

Dummy

A placeholder event that counts nothing.

Informational sample record types such as Mmap or Comm must be associated with an active event. This dummy event allows gathering such records without requiring a counting event.

§

BpfOutput

This is used to generate raw sample data from BPF.

BPF programs can write to this event using bpf_perf_event_output helper.

Since linux-4.4: https://github.com/torvalds/linux/commit/a43eec304259a6c637f4014a6d4767159b6a3aa3

§

CpuMigration

The number of times the process has migrated to a new CPU.

Trait Implementations§

Source§

impl Clone for Software

Source§

fn clone(&self) -> Software

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Software

Source§

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

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

impl TryFrom<&Software> for Event

Source§

type Error = Error

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

fn try_from(value: &Software) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<Software> for Event

Source§

type Error = Error

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

fn try_from(value: Software) -> Result<Self, Self::Error>

Performs the conversion.

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.