From Perf Wiki
Revision as of 07:34, 15 March 2023 by Anup Sharma
An option on perf stat where a BPF program reads counters to a BPF map rather than the regular read of a perf event file descriptor. The BPF program
reads the counter on context switches from an event in system wide mode. If the number of system wide per CPU events is less than the number of threads
or cgroups, this option can reduce file descriptor overhead.
Cache-to-cache. perf c2c is a builtin perf tool for analyzing shared data accesses and problems like false sharing.
1. Used to refer to events on the CPU's PMU, contrast with Uncore and Offcore. 2. Part of the topology containing multiple SMT threads.
The list of measurable events is supported by the perf tool.
1. A perf command to list the events within a perf.data file. 2. A list of event selectors. The evlist API is part of libperf.
An event selector describes a perf event that will be opened on multiple CPUs or threads. The evsel API is part of libperf.
When a cache line is accidentally shared, and written-to, by two threads because of the layout of data being so that it is on the same cache line.
The default kind of event that can be multiplexed, contrast with pinned event.
Free Running Counter
A counter that runs through its full range of values before repeating.
A load that hit a modified cacheline.
Intel/x86 term for SMT.
KVM stands for Kernel-based Virtual Machine, perf command with kvm helps us to trace/measure kvm guest os
Taking multiple performance counters, typcally in perf stat, and then computing a human meaningful value like memory bandwidth.
When the number of events is greater than the hardware counters the kernel will multiplex the events. Each event is scheduled for a period of time
(by default 1kHz) and then rotated.
Off-CPU is data collected when a task gets context switched. Brendan Gregg discusses Off-CPU analysis. Combining on-CPU time, measured with a performance
counter, with off-CPU time will give wall clock time. Linux perf 5.20 adds a command line option to perf record to gather off-CPU data.
By default output from various perf commands is stored in a file named perf.data.
A kernel abstraction used to reference data being gathered about a particular kind of kernel event.
Pinned events are scheduled at a higher priority to flexible events. If they can't be scheduled within the kernel they don't multiplex and enter an error state.
They are kernel/os-based low-level counters. To identify the list of supported software events use the command: perf list software
Kernel term for a process (if just 1 thread) or thread.