From Perf Wiki
Revision as of 06:37, 28 July 2022 by Ian Rogers
An option on perf stat where a BPF program reads counters to a BPF map rather then 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.
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.
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.
Kernel term for a process (if just 1 thread) or thread.