linux/tools/perf/util
Ilya Leoshkevich 5e2ac8e857 perf bpf-filter: Enable events manually
On s390, and, in general, on all platforms where the respective event
supports auxiliary data gathering, the command:

   # ./perf record -u 0 -aB --synth=no -- ./perf test -w thloop
   [ perf record: Woken up 1 times to write data ]
   [ perf record: Captured and wrote 0.011 MB perf.data ]
   # ./perf report --stats | grep SAMPLE
   #

does not generate samples in the perf.data file. On x86 the command:

  # sudo perf record -e intel_pt// -u 0 ls

is broken too.

Looking at the sequence of calls in 'perf record' reveals this
behavior:

1. The event 'cycles' is created and enabled:

   record__open()
   +-> evlist__apply_filters()
       +-> perf_bpf_filter__prepare()
	   +-> bpf_program.attach_perf_event()
	       +-> bpf_program.attach_perf_event_opts()
	           +-> __GI___ioctl(..., PERF_EVENT_IOC_ENABLE, ...)

   The event 'cycles' is enabled and active now. However the event's
   ring-buffer to store the samples generated by hardware is not
   allocated yet.

2. The event's fd is mmap()ed to create the ring buffer:

   record__open()
   +-> record__mmap()
       +-> record__mmap_evlist()
	   +-> evlist__mmap_ex()
	       +-> perf_evlist__mmap_ops()
	           +-> mmap_per_cpu()
	               +-> mmap_per_evsel()
	                   +-> mmap__mmap()
	                       +-> perf_mmap__mmap()
	                           +-> mmap()

   This allocates the ring buffer for the event 'cycles'. With mmap()
   the kernel creates the ring buffer:

   perf_mmap(): kernel function to create the event's ring
   |            buffer to save the sampled data.
   |
   +-> ring_buffer_attach(): Allocates memory for ring buffer.
       |        The PMU has auxiliary data setup function. The
       |        has_aux(event) condition is true and the PMU's
       |        stop() is called to stop sampling. It is not
       |        restarted:
       |
       |        if (has_aux(event))
       |                perf_event_stop(event, 0);
       |
       +-> cpumsf_pmu_stop():

   Hardware sampling is stopped. No samples are generated and saved
   anymore.

3. After the event 'cycles' has been mapped, the event is enabled a
   second time in:

   __cmd_record()
   +-> evlist__enable()
       +-> __evlist__enable()
	   +-> evsel__enable_cpu()
	       +-> perf_evsel__enable_cpu()
	           +-> perf_evsel__run_ioctl()
	               +-> perf_evsel__ioctl()
	                   +-> __GI___ioctl(., PERF_EVENT_IOC_ENABLE, .)

   The second

      ioctl(fd, PERF_EVENT_IOC_ENABLE, 0);

   is just a NOP in this case. The first invocation in (1.) sets the
   event::state to PERF_EVENT_STATE_ACTIVE. The kernel functions

   perf_ioctl()
   +-> _perf_ioctl()
       +-> _perf_event_enable()
           +-> __perf_event_enable()

   return immediately because event::state is already set to
   PERF_EVENT_STATE_ACTIVE.

This happens on s390, because the event 'cycles' offers the possibility
to save auxilary data. The PMU callbacks setup_aux() and free_aux() are
defined. Without both callback functions, cpumsf_pmu_stop() is not
invoked and sampling continues.

To remedy this, remove the first invocation of

   ioctl(..., PERF_EVENT_IOC_ENABLE, ...).

in step (1.) Create the event in step (1.) and enable it in step (3.)
after the ring buffer has been mapped.

Output after:

 # ./perf record -aB --synth=no -u 0 -- ./perf test -w thloop 2
 [ perf record: Woken up 3 times to write data ]
 [ perf record: Captured and wrote 0.876 MB perf.data ]
 # ./perf  report --stats | grep SAMPLE
              SAMPLE events:      16200  (99.5%)
              SAMPLE events:      16200
 #

The software event succeeded both before and after the patch:

 # ./perf record -e cpu-clock -aB --synth=no -u 0 -- \
					  ./perf test -w thloop 2
 [ perf record: Woken up 7 times to write data ]
 [ perf record: Captured and wrote 2.870 MB perf.data ]
 # ./perf  report --stats | grep SAMPLE
              SAMPLE events:      53506  (99.8%)
              SAMPLE events:      53506
 #

Fixes: b4c658d4d6 ("perf target: Remove uid from target")
Suggested-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Co-developed-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Link: https://lore.kernel.org/r/20250806162417.19666-3-iii@linux.ibm.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2025-08-07 09:03:44 -07:00
..
arm-spe-decoder perf arm-spe: Add support for SPE Data Source packet on HiSilicon HIP12 2025-05-27 17:57:58 -03:00
bpf_skel perf ftrace latency: Add -e option to measure time between two events 2025-07-14 22:51:58 -07:00
cs-etm-decoder perf cs-etm: Use new OpenCSD consistency checks 2024-09-24 11:46:46 -07:00
hisi-ptt-decoder perf util: Make util its own library 2024-06-26 11:07:42 -07:00
include tools headers: Update the copy of x86's mem{cpy,set}_64.S used in 'perf bench' 2025-06-16 14:05:11 -03:00
intel-pt-decoder perf intel-pt: Remove stale build comment 2024-12-18 16:24:33 -03:00
libunwind
perf-regs-arch perf util: Make util its own library 2024-06-26 11:07:42 -07:00
scripting-engines perf build-id: Change sprintf functions to snprintf 2025-07-25 10:37:13 -07:00
addr_location.c perf report: Add machine parallelism 2025-02-17 22:00:50 -08:00
addr_location.h perf report: Add latency output field 2025-02-18 14:04:32 -08:00
affinity.c perf test: Expand user space event reading (rdpmc) tests 2025-06-20 13:14:07 -07:00
affinity.h perf test: Expand user space event reading (rdpmc) tests 2025-06-20 13:14:07 -07:00
amd-sample-raw.c perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
annotate-data.c perf annotate-data: Add annotated_data_type__get_member_name() 2025-03-13 00:19:51 -07:00
annotate-data.h perf annotate-data: Add annotated_data_type__get_member_name() 2025-03-13 00:19:51 -07:00
annotate.c perf annotate: Fix source code annotate with objdump 2025-06-26 15:15:48 -07:00
annotate.h perf annotate: Fix source code annotate with objdump 2025-06-26 15:15:48 -07:00
archinsn.h
arm64-frame-pointer-unwind-support.c perf sample: Make user_regs and intr_regs optional 2025-02-12 20:06:11 -08:00
arm64-frame-pointer-unwind-support.h
arm-spe.c perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
arm-spe.h perf arm-spe: Define metadata header version 2 2024-10-03 15:23:09 -07:00
auxtrace.c perf auxtrace: Pass perf_env from session through to mmap read 2025-07-25 10:37:58 -07:00
auxtrace.h perf auxtrace: Pass perf_env from session through to mmap read 2025-07-25 10:37:58 -07:00
block-info.c perf report: Display the branch counter histogram 2024-08-14 10:20:40 -03:00
block-info.h perf report: Display the branch counter histogram 2024-08-14 10:20:40 -03:00
block-range.c
block-range.h
bpf_counter_cgroup.c perf stat: Constify control data for BPF 2024-09-03 11:43:16 -03:00
bpf_counter.c perf stat: Support inherit events during fork() for bperf 2024-11-01 23:31:08 -07:00
bpf_counter.h
bpf_ftrace.c perf ftrace latency: Add -e option to measure time between two events 2025-07-14 22:51:58 -07:00
bpf_kwork_top.c perf kwork: Make perf_kwork_add_work a callback 2024-12-18 16:24:33 -03:00
bpf_kwork.c perf kwork: Make perf_kwork_add_work a callback 2024-12-18 16:24:33 -03:00
bpf_lock_contention.c perf lock contention: Add -J/--inject-delay option 2025-05-09 14:32:15 -03:00
bpf_map.c perf bpf: Remove redundant check that map is NULL 2024-08-21 11:39:51 -03:00
bpf_map.h
bpf_off_cpu.c perf record --off-cpu: Add --off-cpu-thresh option 2025-05-05 21:51:54 -03:00
bpf_trace_augment.c perf trace: Split BPF skel code to util/bpf_trace_augment.c 2025-06-26 10:31:05 -07:00
bpf-event.c perf env: Remove global perf_env 2025-07-25 10:37:58 -07:00
bpf-event.h perf record: collect BPF metadata from new programs 2025-06-20 14:48:49 -07:00
bpf-filter.c perf bpf-filter: Enable events manually 2025-08-07 09:03:44 -07:00
bpf-filter.h perf bpf-filter: Improve error messages 2025-06-09 11:18:17 -07:00
bpf-filter.l perf bpf-filter: Fix a parsing error with comma 2025-03-24 17:29:58 -07:00
bpf-filter.y perf bpf-filter: Support filtering on cgroups 2024-08-28 18:21:49 -03:00
bpf-trace-summary.c perf trace: Support --summary-mode=cgroup 2025-05-13 18:20:46 -03:00
bpf-utils.c
bpf-utils.h
branch.c perf session: Add accessor for session->header.env 2025-07-25 10:37:56 -07:00
branch.h perf script: Add not taken event for branch stack 2025-03-05 09:13:19 -08:00
btf.c perf btf: Make the sigtrap test helper to find a member by name widely available 2024-12-09 17:52:41 -03:00
btf.h perf btf: Make the sigtrap test helper to find a member by name widely available 2024-12-09 17:52:41 -03:00
Build perf tp_pmu: Factor existing tracepoint logic to new file 2025-07-26 16:31:43 -07:00
build-id.c perf record: Cache build-ID of hit DSOs only 2025-07-31 10:46:46 -07:00
build-id.h perf build-id: Change sprintf functions to snprintf 2025-07-25 10:37:13 -07:00
cache.h
cacheline.c
cacheline.h
call-path.c
call-path.h
callchain.c perf report: Use map_symbol__copy() when copying callchains 2025-03-07 14:06:56 -08:00
callchain.h perf callchain: Allow symbols to be optional when resolving a callchain 2024-09-10 17:32:47 -03:00
cap.c perf bpf-filter: Improve error messages 2025-06-09 11:18:17 -07:00
cap.h perf bpf-filter: Improve error messages 2025-06-09 11:18:17 -07:00
cgroup.c perf stat: Move metric list from config to evlist 2025-07-11 12:36:40 -07:00
cgroup.h perf stat: Move metric list from config to evlist 2025-07-11 12:36:40 -07:00
clockid.c
clockid.h
cloexec.c
cloexec.h
color_config.c perf util: Remove unused perf_color_default_config 2025-03-10 11:31:24 -07:00
color.c perf tools: Remove unused color_fwrite_lines 2024-10-10 23:38:33 -07:00
color.h perf util: Remove unused perf_color_default_config 2025-03-10 11:31:24 -07:00
comm.c perf thread: Ensure comm_lock held for comm_list 2025-06-11 13:40:31 -07:00
comm.h
compress.h perf tools: Add LZMA decompression from FILE 2025-03-10 14:37:02 -07:00
config.c perf util: Remove unused perf_config__refresh 2025-03-10 11:31:24 -07:00
config.h perf util: Remove unused perf_config__refresh 2025-03-10 11:31:24 -07:00
copyfile.c
copyfile.h
counts.c
counts.h
cpu-set-sched.h
cpumap.c perf cpumap: Increment reference count for online cpumap 2025-03-19 16:56:33 -07:00
cpumap.h perf cpumap: Remove refcnt from 'struct cpu_aggr_map' 2024-05-07 18:06:44 -03:00
cputopo.c
cputopo.h
cs-etm-base.c
cs-etm.c perf sample: Make user_regs and intr_regs optional 2025-02-12 20:06:11 -08:00
cs-etm.h perf: cs-etm: Create decoders based on the trace ID mappings 2024-08-29 15:55:24 -03:00
data-convert-bt.c perf session: Add accessor for session->header.env 2025-07-25 10:37:56 -07:00
data-convert-json.c perf session: Add accessor for session->header.env 2025-07-25 10:37:56 -07:00
data-convert.h
data.c perf util: Remove unused perf_data__update_dir 2025-03-10 11:31:24 -07:00
data.h perf util: Remove unused perf_data__update_dir 2025-03-10 11:31:24 -07:00
db-export.c perf script: perf script tests fails with segfault 2025-06-09 21:38:08 -07:00
db-export.h
debug.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
debug.h perf debug: Add function symbols to dump_stack 2025-06-25 10:59:19 -07:00
debuginfo.c perf build-id: Ensure struct build_id is empty before use 2025-07-25 10:37:55 -07:00
debuginfo.h perf build: Rename HAVE_DWARF_SUPPORT to HAVE_LIBDW_SUPPORT 2024-10-18 10:17:40 -07:00
demangle-cxx.cpp
demangle-cxx.h perf symbol: Move demangling code out of symbol-elf.c 2025-05-28 19:02:58 -03:00
demangle-java.c
demangle-java.h
demangle-ocaml.c
demangle-ocaml.h
demangle-rust-v0.c perf demangle-rust: Add rustc-demangle C demangler 2025-05-09 17:00:05 -03:00
demangle-rust-v0.h perf demangle-rust: Add rustc-demangle C demangler 2025-05-09 17:00:05 -03:00
disasm_bpf.c perf bpf: Move BPF disassembly routines to separate file to avoid clash with capstone bpf headers 2024-08-01 18:54:19 -03:00
disasm_bpf.h perf bpf: Move BPF disassembly routines to separate file to avoid clash with capstone bpf headers 2024-08-01 18:54:19 -03:00
disasm.c perf build-id: Change sprintf functions to snprintf 2025-07-25 10:37:13 -07:00
disasm.h perf disasm: Add e_machine/e_flags to struct arch 2024-11-09 08:39:13 -08:00
dlfilter.c perf sample: Remove arch notion of sample parsing 2025-07-25 10:37:58 -07:00
dlfilter.h
drm_pmu.c perf drm_pmu: Fix spelling mistake "bufers" -> "buffers" 2025-06-30 09:10:50 -07:00
drm_pmu.h perf drm_pmu: Add a tool like PMU to expose DRM information 2025-06-25 11:12:35 -07:00
dso.c perf dso: Move build_id to dso_id 2025-07-25 10:37:56 -07:00
dso.h perf dso: Move build_id to dso_id 2025-07-25 10:37:56 -07:00
dsos.c perf dso: Move build_id to dso_id 2025-07-25 10:37:56 -07:00
dsos.h perf dso: Constify dso_id 2024-08-19 14:52:13 -03:00
dump-insn.c perf script: Minimize "not reaching sample" for '-F +brstackinsn' 2024-09-03 12:22:01 -03:00
dump-insn.h perf script: Minimize "not reaching sample" for '-F +brstackinsn' 2024-09-03 12:22:01 -03:00
dwarf-aux.c perf libdw: Remove unnecessary defines 2024-10-18 10:17:40 -07:00
dwarf-aux.h perf libdw: Remove unnecessary defines 2024-10-18 10:17:40 -07:00
dwarf-regs-csky.c perf dwarf-regs: Move csky dwarf-regs out of arch 2024-11-09 08:39:13 -08:00
dwarf-regs-powerpc.c perf dwarf-regs: Move powerpc dwarf-regs out of arch 2024-11-09 08:39:13 -08:00
dwarf-regs-x86.c perf dwarf-regs: Move x86 dwarf-regs out of arch 2024-11-09 08:39:13 -08:00
dwarf-regs.c perf dwarf-regs: Remove get_arch_regstr code 2024-11-09 08:39:14 -08:00
env.c perf env: Remove global perf_env 2025-07-25 10:37:58 -07:00
env.h perf env: Remove global perf_env 2025-07-25 10:37:58 -07:00
event.c perf build-id: Change sprintf functions to snprintf 2025-07-25 10:37:13 -07:00
event.h perf sort: Use perf_env to set arch sort keys and header 2025-07-25 10:37:58 -07:00
events_stats.h perf report: Add latency output field 2025-02-18 14:04:32 -08:00
evlist.c perf parse-events: Warn if a cpu term is unsupported by a CPU 2025-07-24 13:41:34 -07:00
evlist.h perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
evsel_config.h perf parse-events: Add "cpu" term to set the CPU an event is recorded on 2025-05-12 14:23:19 -03:00
evsel_fprintf.c perf evsel: Add/use accessor for tp_format 2024-12-09 17:52:42 -03:00
evsel_fprintf.h
evsel.c perf tp_pmu: Factor existing tracepoint logic to new file 2025-07-26 16:31:43 -07:00
evsel.h perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
evswitch.c
evswitch.h
expr.c perf tool_pmu: Allow num_cpus(_online) to be specific to a cpumask 2025-07-24 13:41:35 -07:00
expr.h
expr.l perf expr: Allow NaN to be a valid number 2024-02-13 13:47:08 -08:00
expr.y
find-map.c
fncache.c perf fncache: Switch to using hashmap 2025-05-13 16:36:22 -03:00
fncache.h perf fncache: Switch to using hashmap 2025-05-13 16:36:22 -03:00
ftrace.h perf: ftrace: add graph tracer options args/retval/retval-hex/retaddr 2025-07-22 17:47:22 -07:00
genelf_debug.c
genelf.c perf genelf: Fix NO_LIBDW=1 build 2025-07-02 19:01:54 -07:00
genelf.h perf build: Rename HAVE_DWARF_SUPPORT to HAVE_LIBDW_SUPPORT 2024-10-18 10:17:40 -07:00
generate-cmdlist.sh perf tools: Remove dependency on libaudit 2025-01-10 10:59:42 -03:00
get_current_dir_name.c
get_current_dir_name.h
hashmap.c
hashmap.h perf tools: Fix possible compiler warnings in hashmap 2024-10-14 12:04:31 -07:00
header.c perf header: Clean up use of perf_env 2025-07-25 10:37:57 -07:00
header.h perf header: Allow tracing of attr events 2025-06-25 12:37:29 -07:00
help-unknown-cmd.c perf help: Lower levenshtein penality for deleting character 2024-03-21 13:54:40 -03:00
help-unknown-cmd.h
hisi-ptt.c perf tool: Constify tool pointers 2024-08-12 18:05:14 -03:00
hisi-ptt.h
hist.c perf sample: Remove arch notion of sample parsing 2025-07-25 10:37:58 -07:00
hist.h perf sample: Remove arch notion of sample parsing 2025-07-25 10:37:58 -07:00
hwmon_pmu.c perf hwmon_pmu: Avoid shortening hwmon PMU name 2025-07-11 12:36:39 -07:00
hwmon_pmu.h perf hwmon_pmu: Hold path rather than fd 2025-07-02 19:05:26 -07:00
intel-bts.c perf sample: Make user_regs and intr_regs optional 2025-02-12 20:06:11 -08:00
intel-bts.h
intel-pt.c perf intel-pt: Fix PEBS-via-PT data_src 2025-05-12 14:18:09 -03:00
intel-pt.h
intel-tpebs.c perf sample: Remove arch notion of sample parsing 2025-07-25 10:37:58 -07:00
intel-tpebs.h perf stat: Add mean, min, max and last --tpebs-mode options 2025-04-25 12:31:36 -03:00
intlist.c
intlist.h
iostat.c
iostat.h
jit.h perf jit: Constify filename argument 2024-08-19 14:51:46 -03:00
jitdump.c perf jitdump: Directly mark the jitdump DSO 2025-07-25 10:37:56 -07:00
jitdump.h
kvm-stat.c perf kvm: Move functions used in util out of builtin 2024-12-18 16:24:32 -03:00
kvm-stat.h perf kvm: Move functions used in util out of builtin 2024-12-18 16:24:32 -03:00
kwork.h perf kwork: Make perf_kwork_add_work a callback 2024-12-18 16:24:33 -03:00
levenshtein.c
levenshtein.h
llvm-c-helpers.cpp perf llvm-add2line: Remove unused symbol_conf.h include 2025-01-08 17:38:32 -03:00
llvm-c-helpers.h perf annotate: LLVM-based disassembler 2024-09-03 10:39:20 -03:00
lock-contention.c perf lock: Move common lock contention code to new file 2024-12-18 16:24:33 -03:00
lock-contention.h perf lock contention: Add -J/--inject-delay option 2025-05-09 14:32:15 -03:00
lzma.c perf tools: Add LZMA decompression from FILE 2025-03-10 14:37:02 -07:00
machine.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
machine.h perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
map_symbol.c perf hist: Correct hist_entry->mem_info refcounts 2024-08-01 18:55:55 -03:00
map_symbol.h perf hist: Correct hist_entry->mem_info refcounts 2024-08-01 18:55:55 -03:00
map.c perf dso: Move build_id to dso_id 2025-07-25 10:37:56 -07:00
map.h perf dso: Move build_id to dso_id 2025-07-25 10:37:56 -07:00
maps.c perf record: Fix a asan runtime error in util/maps.c 2025-05-16 17:31:40 -03:00
maps.h perf maps: Locking tidy up of nr_maps 2024-02-12 12:35:41 -08:00
mem2node.c
mem2node.h
mem-events.c perf mem: Count L2 HITM for c2c statistic 2025-05-27 18:05:28 -03:00
mem-events.h perf mem: Add 'dtlb' output field 2025-05-02 15:36:14 -03:00
mem-info.c perf hist: Correct hist_entry->mem_info refcounts 2024-08-01 18:55:55 -03:00
mem-info.h perf hist: Correct hist_entry->mem_info refcounts 2024-08-01 18:55:55 -03:00
memswap.c
memswap.h
metricgroup.c perf metricgroups: Add NO_THRESHOLD_AND_NMI constraint 2025-07-24 13:41:36 -07:00
metricgroup.h perf stat: Move metric list from config to evlist 2025-07-11 12:36:40 -07:00
mmap.c perf cpumap: Increment reference count for online cpumap 2025-03-19 16:56:33 -07:00
mmap.h perf tools: Deadcode removal 2025-02-10 11:46:02 -08:00
mutex.c
mutex.h perf rwsem: Add clang's -Wthread-safety annotations 2025-05-21 15:07:13 -03:00
namespaces.c perf namespaces: Fixup the nsinfo__in_pidns() return type, its bool 2025-01-08 17:31:06 -03:00
namespaces.h perf namespaces: Fixup the nsinfo__in_pidns() return type, its bool 2025-01-08 17:31:06 -03:00
off_cpu.h perf record --off-cpu: Add --off-cpu-thresh option 2025-05-05 21:51:54 -03:00
ordered-events.c
ordered-events.h
parse-branch-options.c
parse-branch-options.h
parse-events.c perf tp_pmu: Factor existing tracepoint logic to new file 2025-07-26 16:31:43 -07:00
parse-events.h perf parse-events: Remove non-json software events 2025-07-26 16:31:43 -07:00
parse-events.l perf parse-events: Remove non-json software events 2025-07-26 16:31:43 -07:00
parse-events.y perf parse-events: Remove non-json software events 2025-07-26 16:31:43 -07:00
parse-regs-options.c perf parse-regs: Introduce a weak function arch__sample_reg_masks() 2024-02-15 13:48:36 -08:00
parse-regs-options.h
parse-sublevel-options.c
parse-sublevel-options.h
path.c perf path: Remove unused is_executable_file() 2024-12-23 13:53:08 -03:00
path.h perf path: Remove unused is_executable_file() 2024-12-23 13:53:08 -03:00
perf_api_probe.c
perf_api_probe.h
perf_event_attr_fprintf.c perf tools: Improve handling of hybrid PMUs in perf_event_attr__fprintf 2025-03-11 19:00:50 -07:00
perf_regs.c perf parse-regs: Introduce a weak function arch__sample_reg_masks() 2024-02-15 13:48:36 -08:00
perf_regs.h perf parse-regs: Introduce a weak function arch__sample_reg_masks() 2024-02-15 13:48:36 -08:00
perf-hooks-list.h
perf-hooks.c
perf-hooks.h
PERF-VERSION-GEN
pfm.c perf list: Skip ABI PMUs when printing pmu values 2025-07-26 16:31:43 -07:00
pfm.h
pmu.c perf tp_pmu: Add event APIs 2025-07-26 16:31:43 -07:00
pmu.h perf tools: move perf_pmus__find_core_pmu() prototype to pmus.h 2025-06-26 10:51:31 -07:00
pmu.l
pmu.y
pmus.c perf list: Skip ABI PMUs when printing pmu values 2025-07-26 16:31:43 -07:00
pmus.h perf pmus: Factor perf_pmus__find_by_attr out of evsel__find_pmu 2025-07-24 13:41:35 -07:00
print_binary.c
print_binary.h
print_insn.c perf annotate: Use capstone_init and remove open_capstone_handle from disasm.c 2024-07-31 16:12:59 -03:00
print_insn.h perf annotate: Use capstone_init and remove open_capstone_handle from disasm.c 2024-07-31 16:12:59 -03:00
print-events.c perf list: Skip ABI PMUs when printing pmu values 2025-07-26 16:31:43 -07:00
print-events.h perf list: Skip ABI PMUs when printing pmu values 2025-07-26 16:31:43 -07:00
probe-event.c perf machine: Explicitly pass in host perf_env 2025-07-25 10:37:57 -07:00
probe-event.h perf probe: Replace unacceptable characters when generating event name 2024-12-10 15:41:10 -03:00
probe-file.c perf build-id: Change sprintf functions to snprintf 2025-07-25 10:37:13 -07:00
probe-file.h perf: Remove unused del_perf_probe_events() 2024-11-16 17:07:31 -03:00
probe-finder.c perf build-id: Ensure struct build_id is empty before use 2025-07-25 10:37:55 -07:00
probe-finder.h perf probe: Pick the correct dwarf die while adding probe points 2025-02-26 14:25:14 -08:00
pstack.c perf util: Remove unused pstack__pop 2025-03-10 11:31:24 -07:00
pstack.h perf util: Remove unused pstack__pop 2025-03-10 11:31:24 -07:00
python.c perf python: Stop using deprecated PyUnicode_AsString() 2025-07-30 10:15:17 -07:00
rblist.c
rblist.h
record.c perf cpumap: Clean up use of perf_cpu_map__has_any_cpu_or_is_empty 2024-03-21 10:41:28 -03:00
record.h perf record --off-cpu: Add --off-cpu-thresh option 2025-05-05 21:51:54 -03:00
rlimit.c
rlimit.h
rwsem.c perf rwsem: Add clang's -Wthread-safety annotations 2025-05-21 15:07:13 -03:00
rwsem.h perf rwsem: Add clang's -Wthread-safety annotations 2025-05-21 15:07:13 -03:00
s390-cpumcf-kernel.h
s390-cpumsf-kernel.h
s390-cpumsf.c perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
s390-cpumsf.h
s390-sample-raw.c perf color: Add printf format checking and resolve issues 2024-10-17 12:44:26 -07:00
sample-raw.c perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
sample-raw.h perf evlist: Change env variable to session 2025-07-25 10:37:56 -07:00
sample.c perf sample: Make user_regs and intr_regs optional 2025-02-12 20:06:11 -08:00
sample.h perf sample: Remove arch notion of sample parsing 2025-07-25 10:37:58 -07:00
session.c perf sample: Remove arch notion of sample parsing 2025-07-25 10:37:58 -07:00
session.h perf session: Add host_env argument to perf_session__new 2025-07-25 10:37:57 -07:00
setns.c
setup.py perf python: Fix setup.py mypy errors 2025-03-24 09:38:20 -07:00
sha1.c perf util: add a basic SHA-1 implementation 2025-06-26 10:51:40 -07:00
sha1.h perf util: add a basic SHA-1 implementation 2025-06-26 10:51:40 -07:00
sharded_mutex.c
sharded_mutex.h
sideband_evlist.c
smt.c
smt.h
sort.c perf sort: Use perf_env to set arch sort keys and header 2025-07-25 10:37:58 -07:00
sort.h perf sort: Use perf_env to set arch sort keys and header 2025-07-25 10:37:58 -07:00
spark.c perf spark: Fix includes and add SPDX 2025-07-11 12:36:40 -07:00
spark.h perf spark: Fix includes and add SPDX 2025-07-11 12:36:40 -07:00
srccode.c perf fncache: Switch to using hashmap 2025-05-13 16:36:22 -03:00
srccode.h
srcline.c perf srcline: Lower verbosity on addr2line debug messages 2025-06-24 10:27:49 -07:00
srcline.h
stat-display.c perf stat: Move metric list from config to evlist 2025-07-11 12:36:40 -07:00
stat-shadow.c perf stat: Remove duplicated include in stat-shadow.c 2025-07-23 10:48:29 -07:00
stat.c perf parse-events: Support user CPUs mixed with threads/processes 2025-07-24 13:41:35 -07:00
stat.h perf stat: Move metric list from config to evlist 2025-07-11 12:36:40 -07:00
strbuf.c
strbuf.h
stream.c perf stream: Use evsel rather than evsel->idx 2024-12-23 13:53:08 -03:00
stream.h perf stream: Use evsel rather than evsel->idx 2024-12-23 13:53:08 -03:00
strfilter.c
strfilter.h
string2.h perf string: Add strpbrk_esq() and strdup_esq() for escape and quote 2024-11-14 16:56:32 -03:00
string.c perf string: Avoid undefined NULL+1 2024-12-12 15:53:36 -03:00
strlist.c
strlist.h
svghelper.c perf cpumap: Reduce transitive dependencies on libperf MAX_NR_CPUS 2024-12-09 17:52:41 -03:00
svghelper.h
symbol_conf.h perf record: Make --buildid-mmap the default 2025-07-25 10:37:56 -07:00
symbol_fprintf.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
symbol-elf.c RISC-V Patches for the 6.16 Merge Window, Part 1 2025-06-06 18:05:18 -07:00
symbol-minimal.c perf build-id: Ensure struct build_id is empty before use 2025-07-25 10:37:55 -07:00
symbol.c perf build-id: Ensure struct build_id is empty before use 2025-07-25 10:37:55 -07:00
symbol.h perf mem-info: Move mem-info out of mem-events and symbol 2024-05-07 18:06:44 -03:00
symsrc.h
synthetic-events.c perf sample: Remove arch notion of sample parsing 2025-07-25 10:37:58 -07:00
synthetic-events.h perf record: collect BPF metadata from new programs 2025-06-20 14:48:49 -07:00
syscalltbl.c perf syscalltbl: Mask off ABI type for MIPS system calls 2025-03-20 22:58:23 -07:00
syscalltbl.h perf syscalltbl: Remove struct syscalltbl 2025-03-20 22:57:57 -07:00
target.c perf target: Remove uid from target 2025-06-09 11:18:18 -07:00
target.h perf target: Remove uid from target 2025-06-09 11:18:18 -07:00
term.c
term.h
thread_map.c perf thread_map: Remove uid options 2025-06-09 11:18:18 -07:00
thread_map.h perf thread_map: Remove uid options 2025-06-09 11:18:18 -07:00
thread-stack.c
thread-stack.h
thread.c perf thread: Ensure comm_lock held for comm_list 2025-06-11 13:40:31 -07:00
thread.h perf thread: Ensure comm_lock held for comm_list 2025-06-11 13:40:31 -07:00
threads.c perf tools: Remove unnecessary parentheses 2024-10-14 12:04:31 -07:00
threads.h perf threads: Reduce table size from 256 to 8 2024-03-03 22:52:13 -08:00
time-utils.c perf time-utils: Fix 32-bit nsec parsing 2024-09-03 11:21:55 -03:00
time-utils.h
tool_pmu.c libperf evsel: Rename own_cpus to pmu_cpus 2025-07-24 13:41:35 -07:00
tool_pmu.h perf tool_pmu: Allow num_cpus(_online) to be specific to a cpumask 2025-07-24 13:41:35 -07:00
tool.c perf session: Add accessor for session->header.env 2025-07-25 10:37:56 -07:00
tool.h perf tools: display the new PERF_RECORD_BPF_METADATA event 2025-06-20 14:48:56 -07:00
top.c perf top: Switch user option to use BPF filter 2025-06-09 11:18:18 -07:00
top.h perf top: Switch user option to use BPF filter 2025-06-09 11:18:18 -07:00
topdown.c
topdown.h
tp_pmu.c perf tp_pmu: Add event APIs 2025-07-26 16:31:43 -07:00
tp_pmu.h perf tp_pmu: Add event APIs 2025-07-26 16:31:43 -07:00
trace_augment.h perf trace: Split BPF skel code to util/bpf_trace_augment.c 2025-06-26 10:31:05 -07:00
trace-event-info.c
trace-event-parse.c perf trace-event: Constify print arguments 2024-12-09 17:52:42 -03:00
trace-event-read.c perf build: Include libtraceevent headers directly indicated by pkg-config 2024-11-08 22:42:57 -08:00
trace-event-scripting.c perf script: Fix typo in branch event mask 2025-03-13 13:19:27 -07:00
trace-event.c perf build: Include libtraceevent headers directly indicated by pkg-config 2024-11-08 22:42:57 -08:00
trace-event.h perf script: Make printing flags reliable 2025-03-05 09:13:19 -08:00
trace.h perf trace: Support --summary-mode=cgroup 2025-05-13 18:20:46 -03:00
tracepoint.c perf tracepoint: Don't scan all tracepoints to test if one exists 2024-05-09 18:46:43 -03:00
tracepoint.h perf tracepoint: Don't scan all tracepoints to test if one exists 2024-05-09 18:46:43 -03:00
trigger.h
tsc.c perf tools: Fix typos Muliplier -> Multiplier 2024-11-13 16:27:35 -03:00
tsc.h perf tool_pmu: Move expr literals to tool_pmu 2024-10-10 23:40:32 -07:00
units.c perf units: Fix insufficient array space 2025-03-13 00:30:08 -07:00
units.h
unwind-libdw.c perf unwind-libdw: skip non-regular files 2025-06-24 10:27:50 -07:00
unwind-libdw.h
unwind-libunwind-local.c perf libunwind arm64: Fix missing close parens in an if statement 2025-04-10 17:51:31 -07:00
unwind-libunwind.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
unwind.h
usage.c
util.c perf util: Remove kernel version deadcode 2024-11-16 16:30:39 -03:00
util.h perf util: Remove kernel version deadcode 2024-11-16 16:30:39 -03:00
values.c perf values: Use evsel rather than evsel->idx 2024-12-23 13:53:08 -03:00
values.h perf values: Use evsel rather than evsel->idx 2024-12-23 13:53:08 -03:00
vdso.c perf vdso: Missed put on 32-bit dsos 2024-09-27 15:38:52 -03:00
vdso.h
zlib.c
zstd.c