Fields

type: PERF.TYPE = undefined,

Major type: hardware/software/tracepoint/etc.

size: u32 = @sizeOf(perf_event_attr),

Size of the attr structure, for fwd/bwd compat.

config: u64 = 0,

Type specific configuration information.

sample_period_or_freq: u64 = 0,
sample_type: u64 = 0,
read_format: u64 = 0,
flags: packed struct {
    disabled: bool = false,
    inherit: bool = false,
    pinned: bool = false,
    exclusive: bool = false,
    exclude_user: bool = false,
    exclude_kernel: bool = false,
    exclude_hv: bool = false,
    exclude_idle: bool = false,
    mmap: bool = false,
    comm: bool = false,
    freq: bool = false,
    inherit_stat: bool = false,
    enable_on_exec: bool = false,
    task: bool = false,
    watermark: bool = false,
    precise_ip: u2 = 0,
    mmap_data: bool = false,
    sample_id_all: bool = false,
    exclude_host: bool = false,
    exclude_guest: bool = false,
    exclude_callchain_kernel: bool = false,
    exclude_callchain_user: bool = false,
    mmap2: bool = false,
    comm_exec: bool = false,
    use_clockid: bool = false,
    context_switch: bool = false,
    write_backward: bool = false,
    namespaces: bool = false,
    __reserved_1: u35 = 0,
} = .{ },
wakeup_events_or_watermark: u32 = 0,

wakeup every n events, or bytes before wakeup

bp_type: u32 = 0,
config1: u64 = 0,

This field is also used for: bp_addr kprobe_func for perf_kprobe uprobe_path for perf_uprobe

config2: u64 = 0,

This field is also used for: bp_len kprobe_addr when kprobe_func == null probe_offset for perf_[k,u]probe

branch_sample_type: u64 = 0,

enum perf_branch_sample_type

sample_regs_user: u64 = 0,

Defines set of user regs to dump on samples. See asm/perf_regs.h for details.

sample_stack_user: u32 = 0,

Defines size of the user stack to dump on samples.

clockid: i32 = 0,
sample_regs_intr: u64 = 0,

Defines set of regs to dump for each sample state captured on:

  • precise = 0: PMU interrupt
  • precise > 0: sampled instruction

See asm/perf_regs.h for details.

aux_watermark: u32 = 0,

Wakeup watermark for AUX area

sample_max_stack: u16 = 0,
__reserved_2: u16 = 0,

Align to u64