#[repr(u32)]pub enum Software {
CPU_CLOCK = 0,
TASK_CLOCK = 1,
PAGE_FAULTS = 2,
CONTEXT_SWITCHES = 3,
CPU_MIGRATIONS = 4,
PAGE_FAULTS_MIN = 5,
PAGE_FAULTS_MAJ = 6,
ALIGNMENT_FAULTS = 7,
EMULATION_FAULTS = 8,
DUMMY = 9,
}Expand description
Software counters, implemented by the kernel.
Each variant of this enum corresponds to a particular PERF_COUNT_SW_…
value supported by the perf_event_open system call.
Variants§
CPU_CLOCK = 0
This reports the CPU clock, a high-resolution per-CPU timer.
TASK_CLOCK = 1
This reports a clock count specific to the task that is running.
PAGE_FAULTS = 2
This reports the number of page faults.
CONTEXT_SWITCHES = 3
This counts context switches. Until Linux 2.6.34, these were all reported as user-space events, after that they are reported as happening in the kernel.
CPU_MIGRATIONS = 4
This reports the number of times the process has migrated to a new CPU.
PAGE_FAULTS_MIN = 5
This counts the number of minor page faults. These did not require disk I/O to handle.
PAGE_FAULTS_MAJ = 6
This counts the number of major page faults. These required disk I/O to handle.
ALIGNMENT_FAULTS = 7
(since Linux 2.6.33) This counts 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).
EMULATION_FAULTS = 8
(since Linux 2.6.33) This counts the number of emulation faults. The kernel sometimes traps on unimplemented instructions and emulates them for user space. This can negatively impact performance.
DUMMY = 9
(since Linux 3.12) This is 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.