linux/tools/perf/util
Namhyung Kim edc41a1099 perf record: Enable off-cpu analysis with BPF
Add --off-cpu option to enable the off-cpu profiling with BPF.  It'd
use a bpf_output event and rename it to "offcpu-time".  Samples will
be synthesized at the end of the record session using data from a BPF
map which contains the aggregated off-cpu time at context switches.
So it needs root privilege to get the off-cpu profiling.

Each sample will have a separate user stacktrace so it will skip
kernel threads.  The sample ip will be set from the stacktrace and
other sample data will be updated accordingly.  Currently it only
handles some basic sample types.

The sample timestamp is set to a dummy value just not to bother with
other events during the sorting.  So it has a very big initial value
and increase it on processing each samples.

Good thing is that it can be used together with regular profiling like
cpu cycles.  If you don't want to that, you can use a dummy event to
enable off-cpu profiling only.

Example output:
  $ sudo perf record --off-cpu perf bench sched messaging -l 1000

  $ sudo perf report --stdio --call-graph=no
  # Total Lost Samples: 0
  #
  # Samples: 41K of event 'cycles'
  # Event count (approx.): 42137343851
  ...

  # Samples: 1K of event 'offcpu-time'
  # Event count (approx.): 587990831640
  #
  # Children      Self  Command          Shared Object       Symbol
  # ........  ........  ...............  ..................  .........................
  #
      81.66%     0.00%  sched-messaging  libc-2.33.so        [.] __libc_start_main
      81.66%     0.00%  sched-messaging  perf                [.] cmd_bench
      81.66%     0.00%  sched-messaging  perf                [.] main
      81.66%     0.00%  sched-messaging  perf                [.] run_builtin
      81.43%     0.00%  sched-messaging  perf                [.] bench_sched_messaging
      40.86%    40.86%  sched-messaging  libpthread-2.33.so  [.] __read
      37.66%    37.66%  sched-messaging  libpthread-2.33.so  [.] __write
       2.91%     2.91%  sched-messaging  libc-2.33.so        [.] __poll
  ...

As you can see it spent most of off-cpu time in read and write in
bench_sched_messaging().  The --call-graph=no was added just to make
the output concise here.

It uses perf hooks facility to control BPF program during the record
session rather than adding new BPF/off-cpu specific calls.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Ian Rogers <irogers@google.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Blake Jones <blakejones@google.com>
Cc: Hao Luo <haoluo@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Milian Wolff <milian.wolff@kdab.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Song Liu <songliubraving@fb.com>
Cc: bpf@vger.kernel.org
Link: https://lore.kernel.org/r/20220518224725.742882-3-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2022-05-26 12:36:57 -03:00
..
arm-spe-decoder perf arm-spe: Add SPE total latency as PERF_SAMPLE_WEIGHT 2021-12-16 12:18:11 -03:00
bpf_skel perf record: Enable off-cpu analysis with BPF 2022-05-26 12:36:57 -03:00
c++ perf clang: Fix header include for LLVM >= 14 2022-04-22 18:39:34 -03:00
cs-etm-decoder perf cs-etm: Print the decoder name 2021-09-03 08:17:25 -03:00
include linkage: remove SYM_FUNC_{START,END}_ALIAS() 2022-02-22 16:21:34 +00:00
intel-pt-decoder perf intel-pt: Add support for emulated ptwrite 2022-05-17 11:55:49 -03:00
libunwind perf arm64: Rename perf_event_arm_regs for ARM64 registers 2021-12-16 12:18:12 -03:00
scripting-engines perf scripting python: Expose symbol offset and source information 2022-04-11 16:39:49 -03:00
affinity.c perf affinity: Allow passing a NULL arg to affinity__cleanup() 2022-01-18 09:24:58 -03:00
affinity.h perf affinity: Add infrastructure to save/restore affinity 2019-11-28 08:08:38 -03:00
amd-sample-raw.c perf report: Add support to print a textual representation of IBS raw sample data 2021-09-10 18:15:21 -03:00
annotate.c perf annotate: Drop objdump stderr to avoid getting stuck waiting for stdout output 2022-04-09 14:21:00 -03:00
annotate.h perf symbols: Factor out annotation init/exit 2021-11-13 18:11:51 -03:00
archinsn.h
arm64-frame-pointer-unwind-support.c perf unwind: Don't show unwind error messages when augmenting frame pointer stack 2022-04-09 12:34:29 -03:00
arm64-frame-pointer-unwind-support.h perf arm64: Inject missing frames when using 'perf record --call-graph=fp' 2021-12-21 18:37:13 -03:00
arm-spe.c perf arm-spe: Fix SPE events with phys addresses 2022-04-28 10:39:28 -03:00
arm-spe.h
auxtrace.c perf tools: Allow all_cpus to be a superset of user_requested_cpus 2022-05-26 12:36:57 -03:00
auxtrace.h perf auxtrace: Remove auxtrace_mmap_params__set_idx() per_cpu parameter 2022-05-26 12:36:57 -03:00
block-info.c perf report: Fix wrong LBR block sorting 2021-04-07 16:18:49 -03:00
block-info.h perf block-info: Allow selecting which columns to report and its order 2020-03-09 21:43:25 -03:00
block-range.c
block-range.h
bpf_counter_cgroup.c perf cpumap: Switch to using perf_cpu_map API 2022-05-05 14:07:27 -03:00
bpf_counter.c perf build: Stop using __weak bpf_map_create() to handle older libbpf versions 2022-05-26 12:36:56 -03:00
bpf_counter.h perf bpf: Rename 'cpu' to 'cpu_map_idx' 2022-01-12 14:28:23 -03:00
bpf_ftrace.c perf evlist: Rename cpus to user_requested_cpus 2022-04-01 16:19:35 -03:00
bpf_map.c perf: Stop using bpf_map__def() API 2022-01-12 17:01:38 -08:00
bpf_map.h
bpf_off_cpu.c perf record: Enable off-cpu analysis with BPF 2022-05-26 12:36:57 -03:00
bpf-event.c perf build: Stop using __weak btf__raw_data() to handle older libbpf versions 2022-05-26 11:02:02 -03:00
bpf-event.h perf bpf: Pull in bpf_program__get_prog_info_linear() 2021-11-01 18:16:40 -03:00
bpf-loader.c perf tools: Move libbpf init in libbpf_init function 2022-04-22 14:02:15 -03:00
bpf-loader.h perf bpf: Enclose libbpf.h include within HAVE_LIBBPF_SUPPORT 2020-11-04 09:42:40 -03:00
bpf-prologue.c perf bpf: Fix bpf prologue generation 2020-06-09 12:40:04 -03:00
bpf-prologue.h
bpf-utils.c perf bpf: Pull in bpf_program__get_prog_info_linear() 2021-11-01 18:16:40 -03:00
bpf-utils.h perf bpf: Pull in bpf_program__get_prog_info_linear() 2021-11-01 18:16:40 -03:00
branch.c perf: Add irq and exception return branch types 2022-03-01 16:19:01 +01:00
branch.h perf branch: Replace zero-length array with flexible-array 2020-05-28 10:03:27 -03:00
Build perf record: Enable off-cpu analysis with BPF 2022-05-26 12:36:57 -03:00
build-id.c perf build-id: Fix spelling mistake "Cant" -> "Can't" 2022-03-22 18:27:56 -03:00
build-id.h perf buildid-cache: Don't skip 16-byte build-ids 2021-02-18 16:41:40 -03:00
cache.h
cacheline.c perf tools: Remove perf.h from source files not needing it 2019-08-29 17:38:32 -03:00
cacheline.h perf cacheline: Move cacheline related routines to separate files 2019-08-26 11:58:29 -03:00
call-path.c perf tools: Use list_del_init() more thorougly 2019-07-09 10:13:27 -03:00
call-path.h perf tools: Fix various typos in comments 2021-03-23 17:13:43 -03:00
callchain.c perf maps: Use a pointer for kmaps 2022-02-14 16:47:13 -03:00
callchain.h perf callchain: Enable dwarf_callchain_users on arm64 2021-12-21 18:35:44 -03:00
cap.c perf tools: Add helpers to use capabilities if present 2019-08-14 10:48:39 -03:00
cap.h perf tools: Support CAP_PERFMON capability 2020-04-16 12:19:08 -03:00
cgroup.c libperf: Move 'leader' from tools/perf to perf_evsel::leader 2021-07-09 14:04:31 -03:00
cgroup.h perf stat: Enable BPF counter with --for-each-cgroup 2021-07-05 14:16:57 -03:00
clockid.c perf tools: Add clockid_name function 2020-08-06 09:33:57 -03:00
clockid.h perf tools: Add clockid_name function 2020-08-06 09:33:57 -03:00
cloexec.c perf tool: Make perf tool aware of SELinux access control 2020-05-28 10:03:26 -03:00
cloexec.h
color_config.c perf tools: Remove needless evlist.h include directives 2019-08-31 22:24:10 -03:00
color.c perf tools: Remove needless evlist.h include directives 2019-08-31 22:24:10 -03:00
color.h
comm.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
comm.h
compress.h perf report: Implement perf.data record decompression 2019-05-15 16:36:49 -03:00
config.c perf config: Refine error message to eliminate confusion 2021-09-27 09:32:28 -03:00
config.h perf config: Make perf_config_global() global 2021-01-20 14:34:21 -03:00
copyfile.c perf tools: Fix mode setting in copyfile_mode_ns() 2019-10-15 12:05:18 -03:00
copyfile.h perf copyfile: Move copyfile routines to separate files 2019-09-25 09:51:49 -03:00
counts.c perf cpumap: Migrate to libperf cpumap api 2022-01-22 17:08:42 -03:00
counts.h perf counts: Switch name cpu to cpu_map_idx 2022-01-12 14:28:22 -03:00
cpu-set-sched.h
cpumap.c perf cpumap: Give CPUs their own type 2022-01-12 14:28:23 -03:00
cpumap.h perf cpumap: Remove duplicate include in cpumap.h 2022-01-22 17:12:23 -03:00
cputopo.c perf cpumap: Migrate to libperf cpumap api 2022-01-22 17:08:42 -03:00
cputopo.h perf cputopo: Match thread_siblings to topology ABI name 2021-11-13 18:11:50 -03:00
cs-etm.c perf cs-etm: Fix corrupt inject files when only last branch option is enabled 2022-02-16 13:49:25 -03:00
cs-etm.h perf cs-etm: Save TRCDEVARCH register 2021-09-03 08:15:10 -03:00
data-convert-bt.c tools/perf: Add '__rel_loc' event field parsing support 2021-12-06 15:37:22 -05:00
data-convert-json.c perf tools: Remove repipe argument from perf_session__new() 2021-08-02 10:06:51 -03:00
data-convert.h perf data: Add JSON export 2021-04-29 10:30:58 -03:00
data.c perf data: Add has_kcore_dir() 2022-05-23 10:11:39 -03:00
data.h perf data: Add has_kcore_dir() 2022-05-23 10:11:39 -03:00
db-export.c perf scripting python: Add 'addr_location' for 'addr' 2021-05-25 10:07:17 -03:00
db-export.h perf scripting python: Add 'addr_location' for 'addr' 2021-05-25 10:07:17 -03:00
debug.c perf script: Fix hex dump character output 2022-01-12 14:28:21 -03:00
debug.h perf tools: Add WARN_ONCE equivalent for UI warnings 2021-08-03 17:03:18 -03:00
demangle-java.c perf tools: Fix various typos in comments 2021-03-23 17:13:43 -03:00
demangle-java.h
demangle-ocaml.c perf tools: Preserve identifier id in OCaml demangler 2021-03-30 12:45:59 -03:00
demangle-ocaml.h perf tools: Add OCaml demangling 2021-02-17 15:15:06 -03:00
demangle-rust.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
demangle-rust.h
dlfilter.c perf tests: Add dlfilter test 2021-08-11 09:35:44 -03:00
dlfilter.h perf tests: Add dlfilter test 2021-08-11 09:35:44 -03:00
dso.c perf tools: Try chroot'ed filename when opening dso/symbol 2022-02-10 15:32:25 -03:00
dso.h perf tools: Set build-id using build-id header on new mmap records 2022-03-12 11:01:12 -03:00
dsos.c perf tools: Try chroot'ed filename when opening dso/symbol 2022-02-10 15:32:25 -03:00
dsos.h perf dso: Move dso_id from 'struct map' to 'struct dso' 2019-11-19 19:12:26 -03:00
dump-insn.c
dump-insn.h
dwarf-aux.c perf probe: Fix add event failure when running 32-bit perf in a 64-bit kernel 2021-07-18 09:31:15 -03:00
dwarf-aux.h perf probe: Fix add event failure when running 32-bit perf in a 64-bit kernel 2021-07-18 09:31:15 -03:00
dwarf-regs.c perf tools: Support MIPS unwinding and dwarf-regs 2021-03-01 14:47:50 -03:00
env.c perf cpumap: Give CPUs their own type 2022-01-12 14:28:23 -03:00
env.h perf cpumap: Give CPUs their own type 2022-01-12 14:28:23 -03:00
event.c perf tools: Add guest_code support 2022-05-23 10:18:38 -03:00
event.h perf intel-pt: Synthesize CFE (Control Flow Event) / EVD (Event Data) event 2022-02-15 17:12:13 -03:00
events_stats.h perf session: Report collisions in AUX records 2021-09-03 08:29:55 -03:00
evlist-hybrid.c perf evlist: Fix failed to use cpu list for uncore events 2022-02-18 09:59:26 -03:00
evlist-hybrid.h perf tools: Enable on a list of CPUs for hybrid 2021-08-11 16:07:32 -03:00
evlist.c perf evlist: Add evlist__add_dummy_on_all_cpus() 2022-05-26 12:36:57 -03:00
evlist.h perf evlist: Add evlist__add_dummy_on_all_cpus() 2022-05-26 12:36:57 -03:00
evsel_config.h perf evsel: Rename *perf_evsel__get_config_term() & friends to evsel__env() 2020-05-28 10:03:24 -03:00
evsel_fprintf.c perf script: Show binary offsets for userspace addr 2021-10-27 20:56:36 -03:00
evsel_fprintf.h perf evsel: Rename perf_evsel__fprintf() to evsel__fprintf() 2020-05-28 10:03:24 -03:00
evsel.c perf report: Do not extend sample type of bpf-output event 2022-05-26 12:36:57 -03:00
evsel.h perf stat: Always keep perf metrics topdown events in a group 2022-05-20 11:11:13 -03:00
evswitch.c perf evlist: Use the right prefix for 'struct evlist' 'find' methods 2020-11-30 09:48:07 -03:00
evswitch.h perf evswitch: Introduce init() method to set the on/off evsels from the command line 2019-08-15 12:25:55 -03:00
expr.c perf pmu-events: Don't lower case MetricExpr 2022-01-12 15:02:48 -03:00
expr.h perf expr: Add source_count for aggregating events 2021-11-13 18:11:50 -03:00
expr.l perf expr: Add source_count for aggregating events 2021-11-13 18:11:50 -03:00
expr.y perf expr: Add source_count for aggregating events 2021-11-13 18:11:50 -03:00
find-map.c
fncache.c perf pmu: Use file system cache to optimize sysfs access 2019-11-28 08:08:38 -03:00
fncache.h perf pmu: Use file system cache to optimize sysfs access 2019-11-28 08:08:38 -03:00
ftrace.h perf ftrace latency: Add -n/--use-nsec option 2022-03-22 17:43:46 -03:00
genelf_debug.c perf jit: Fix inaccurate DWARF line table 2020-05-29 16:51:38 -03:00
genelf.c perf jit: Move test functionality in to a test 2019-11-29 12:20:45 -03:00
genelf.h perf jitdump: Add riscv64 support 2022-04-11 16:37:26 -03:00
generate-cmdlist.sh
get_current_dir_name.c perf tools: Fixup get_current_dir_name() compilation 2021-08-30 10:06:16 -03:00
get_current_dir_name.h perf tools: Move get_current_dir_name() cond prototype out of util.h 2019-07-09 10:13:26 -03:00
hashmap.c perf tools: Update copy of libbpf's hashmap.c 2022-04-01 16:19:34 -03:00
hashmap.h perf tools: Update copy of libbpf's hashmap.c 2020-11-27 14:19:33 -03:00
header.c perf inject: Keep some features sections from input file 2022-05-23 10:11:25 -03:00
header.h perf inject: Keep some features sections from input file 2022-05-23 10:11:25 -03:00
help-unknown-cmd.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
help-unknown-cmd.h
hist.c perf report: Add "addr_from" and "addr_to" sort dimensions 2022-02-16 11:21:22 -03:00
hist.h perf report: Add "addr_from" and "addr_to" sort dimensions 2022-02-16 11:21:22 -03:00
intel-bts.c perf tools: Use __BYTE_ORDER__ 2021-11-07 12:27:38 -03:00
intel-bts.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
intel-pt.c perf intel-pt: Add guest_code support 2022-05-23 10:19:24 -03:00
intel-pt.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
intlist.c perf intlist: Change 'struct intlist' int member to 'unsigned long' 2021-02-08 17:02:00 -03:00
intlist.h perf intlist: Change 'struct intlist' int member to 'unsigned long' 2021-02-08 17:02:00 -03:00
iostat.c perf stat: Basic support for iostat in perf 2021-04-20 08:40:20 -03:00
iostat.h perf stat: Basic support for iostat in perf 2021-04-20 08:40:20 -03:00
jit.h perf inject jit: Add namespaces support 2021-02-03 13:10:44 -03:00
jitdump.c perf namespaces: Add functions to access nsinfo 2022-02-11 14:31:22 -03:00
jitdump.h perf tools: Replace zero-length array with flexible-array 2020-05-28 10:03:27 -03:00
kvm-stat.h perf kvm: Add arch neutral function to choose event for perf kvm record 2019-09-20 10:28:26 -03:00
levenshtein.c perf tools: Fix various typos in comments 2021-03-23 17:13:43 -03:00
levenshtein.h
llvm-utils.c perf tools: Fix LLVM download hint link 2021-08-31 15:18:16 -03:00
llvm-utils.h perf tools: Remove debug.h from header files not needing it 2019-08-29 17:38:32 -03:00
lzma.c perf lzma: Close lzma stream on exit 2021-07-15 17:30:22 -03:00
machine.c perf tools: Add guest_code support 2022-05-23 10:18:38 -03:00
machine.h perf tools: Add guest_code support 2022-05-23 10:18:38 -03:00
map_symbol.h perf tools: Apply correct label to user/kernel symbols in branch mode 2022-02-06 09:03:06 -03:00
map.c perf tools: Set build-id using build-id header on new mmap records 2022-03-12 11:01:12 -03:00
map.h perf map: Make map__contains_symbol() args const 2022-02-14 16:59:55 -03:00
maps.c perf maps: Move maps code to own C file 2022-02-14 16:56:32 -03:00
maps.h perf maps: Reduce scope of init and exit 2022-02-14 16:52:14 -03:00
mem2node.c perf mem2node: Improve warning if detected no memory nodes 2020-11-04 09:42:40 -03:00
mem2node.h perf env: Remove env.h from other headers where just a fwd decl is needed 2019-08-31 19:10:40 -03:00
mem-events.c perf mem: Add stats for store operation with no available memory level 2022-05-23 09:36:12 -03:00
mem-events.h perf mem: Add stats for store operation with no available memory level 2022-05-23 09:36:12 -03:00
memswap.c
memswap.h perf memswap: Adopt 'struct u64_swap' from evsel.h 2019-09-20 09:19:22 -03:00
metricgroup.c perf metrics: Don't add all tool events for sharing 2022-05-09 10:18:48 -03:00
metricgroup.h perf list: Display hybrid PMU events with cpu type 2021-10-25 13:47:42 -03:00
mmap.c perf auxtrace: Remove auxtrace_mmap_params__set_idx() per_cpu parameter 2022-05-26 12:36:57 -03:00
mmap.h perf record: Introduce compressor at mmap buffer object 2022-02-10 16:26:24 -03:00
namespaces.c perf namespaces: Add functions to access nsinfo 2022-02-11 14:31:22 -03:00
namespaces.h perf namespaces: Add functions to access nsinfo 2022-02-11 14:31:22 -03:00
off_cpu.h perf record: Enable off-cpu analysis with BPF 2022-05-26 12:36:57 -03:00
ordered-events.c perf report: Output data file name in raw trace dump 2022-02-10 16:27:34 -03:00
ordered-events.h perf report: Output data file name in raw trace dump 2022-02-10 16:27:34 -03:00
parse-branch-options.c perf debug: Remove needless include directives from debug.h 2019-08-31 19:10:19 -03:00
parse-branch-options.h
parse-events-hybrid.c perf stat: Support --cputype option for hybrid events 2021-12-07 22:18:25 -03:00
parse-events-hybrid.h perf parse-events: Add new "metric-id" term 2021-10-20 10:54:44 -03:00
parse-events.c perf stat: Add requires_cpu flag for uncore 2022-05-26 12:36:57 -03:00
parse-events.h perf parse-events: Support event alias in form foo-bar-baz 2022-01-22 17:20:12 -03:00
parse-events.l perf stat: Add user_time and system_time events 2022-04-20 13:44:56 -03:00
parse-events.y perf parse-events: Support event alias in form foo-bar-baz 2022-01-22 17:20:12 -03:00
parse-regs-options.c perf record: Fix memory leak when using '--user-regs=?' to list registers 2020-12-17 14:36:16 -03:00
parse-regs-options.h perf parse-regs: Split parse_regs 2019-05-15 16:36:49 -03:00
parse-sublevel-options.c perf tools: Add general function to parse sublevel options 2020-08-14 09:15:47 -03:00
parse-sublevel-options.h perf tools: Add missing newline at the end of header file 2021-08-24 15:01:31 -03:00
path.c perf test: Shell - Limit to only run executable scripts in tests 2022-04-11 16:39:49 -03:00
path.h perf test: Shell - Limit to only run executable scripts in tests 2022-04-11 16:39:49 -03:00
perf_api_probe.c perf cpumap: Migrate to libperf cpumap api 2022-01-22 17:08:42 -03:00
perf_api_probe.h perf record: Move probing cgroup sampling support 2021-06-01 10:32:00 -03:00
perf_event_attr_fprintf.c perf tools: Add missing branch_sample_type to perf_event_attr__fprintf() 2022-02-06 09:03:06 -03:00
perf_regs.c perf arch: Support register names from all archs 2021-12-16 12:18:12 -03:00
perf_regs.h perf tools: Refactor SMPL_REG macro in perf_regs.h 2021-12-21 18:35:44 -03:00
perf-hooks-list.h
perf-hooks.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
perf-hooks.h
PERF-VERSION-GEN perf tools: Fix version kernel tag 2022-03-22 17:12:40 -03:00
pfm.c perf parse-events: Add new "metric-id" term 2021-10-20 10:54:44 -03:00
pfm.h perf tools: Add optional support for libpfm4 2020-05-29 16:51:38 -03:00
pmu-hybrid.c perf pmu: Add hybrid helper functions 2021-04-29 10:30:59 -03:00
pmu-hybrid.h perf header: Support HYBRID_TOPOLOGY feature 2021-05-17 10:55:10 -03:00
pmu.c perf cpumap: Use for each loop 2022-02-11 14:05:49 -03:00
pmu.h perf evsel: Fix missing exclude_{host,guest} setting 2021-11-06 17:54:42 -03:00
pmu.l
pmu.y
print_binary.c perf python scripting: Fix printable strings in python3 scripts 2020-10-01 12:10:56 -03:00
print_binary.h
probe-event.c perf maps: Use a pointer for kmaps 2022-02-14 16:47:13 -03:00
probe-event.h perf probe: Fix add event failure when running 32-bit perf in a 64-bit kernel 2021-07-18 09:31:15 -03:00
probe-file.c perf probe-file: Delete namelist in del_events() on the error path 2021-07-18 09:27:37 -03:00
probe-file.h perf probe: Support DW_AT_const_value constant value 2019-11-18 19:08:02 -03:00
probe-finder.c perf probe: Fix add event failure when running 32-bit perf in a 64-bit kernel 2021-07-18 09:31:15 -03:00
probe-finder.h perf probe: Fix add event failure when running 32-bit perf in a 64-bit kernel 2021-07-18 09:31:15 -03:00
pstack.c perf tools: Replace zero-length array with flexible-array 2020-05-28 10:03:27 -03:00
pstack.h
python-ext-sources tools lib: Adopt list_sort() from the kernel sources 2021-10-20 10:30:59 -03:00
python.c perf python: Add perf_env stubs that will be needed in evsel__open_strerror() 2022-03-26 10:55:57 -03:00
rb_resort.h
rblist.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 305 2019-06-05 17:37:04 +02:00
rblist.h
record.c perf evlist: Rename cpus to user_requested_cpus 2022-04-01 16:19:35 -03:00
record.h perf record: Extend --threads command line option 2022-02-10 16:27:00 -03:00
rlimit.c perf tools: Introduce rlimit__bump_memlock() helper 2019-07-09 14:59:11 -03:00
rlimit.h perf tools: Introduce rlimit__bump_memlock() helper 2019-07-09 14:59:11 -03:00
rwsem.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
rwsem.h
s390-cpumcf-kernel.h perf s390-cpumsf: Implement ->evsel_is_auxtrace() callback 2020-04-16 12:19:15 -03:00
s390-cpumsf-kernel.h
s390-cpumsf.c perf tools: Use __BYTE_ORDER__ 2021-11-07 12:27:38 -03:00
s390-cpumsf.h
s390-sample-raw.c perf pmu: Make pmu_event tables const. 2021-10-20 10:32:33 -03:00
sample-raw.c perf report: Add support to print a textual representation of IBS raw sample data 2021-09-10 18:15:21 -03:00
sample-raw.h perf report: Add support to print a textual representation of IBS raw sample data 2021-09-10 18:15:21 -03:00
session.c perf tools: Add guest_code support 2022-05-23 10:18:38 -03:00
session.h perf report: Output data file name in raw trace dump 2022-02-10 16:27:34 -03:00
setns.c perf namespaces: Move the conditional setns() prototype to namespaces.h 2019-07-09 10:13:26 -03:00
setup.py perf build: Don't use -ffat-lto-objects in the python feature test when building with clang-13 2022-04-09 12:34:29 -03:00
sideband_evlist.c perf evlist: Rename cpus to user_requested_cpus 2022-04-01 16:19:35 -03:00
smt.c perf tools: Probe non-deprecated sysfs path 1st 2022-01-12 14:43:34 -03:00
smt.h
sort.c perf report: Add "addr_from" and "addr_to" sort dimensions 2022-02-16 11:21:22 -03:00
sort.h perf report: Add "addr_from" and "addr_to" sort dimensions 2022-02-16 11:21:22 -03:00
spark.c perf diff: Report noisy for cycles diff 2019-10-11 10:57:00 -03:00
spark.h perf diff: Report noisy for cycles diff 2019-10-11 10:57:00 -03:00
srccode.c perf srccode: Use list_move() instead of equivalent list_del() + list_add() sequence 2021-06-08 09:36:36 -03:00
srccode.h
srcline.c perf srcline: Use long-running addr2line per DSO 2021-10-04 09:29:07 -03:00
srcline.h
stat-display.c perf stat: Make use of index clearer with perf_counts 2022-05-23 09:54:02 -03:00
stat-shadow.c perf metrics: Support all tool events 2022-05-09 10:16:49 -03:00
stat.c perf stat: Make use of index clearer with perf_counts 2022-05-23 09:54:02 -03:00
stat.h perf stat: Merge event counts from all hybrid PMUs 2022-04-22 14:23:35 -03:00
strbuf.c perf debug: Remove needless include directives from debug.h 2019-08-31 19:10:19 -03:00
strbuf.h perf tools: Fix various typos in comments 2021-03-23 17:13:43 -03:00
stream.c libperf: Move 'idx' from tools/perf to perf_evsel::idx 2021-07-09 14:04:28 -03:00
stream.h perf streams: Report hot streams 2020-10-14 13:34:26 -03:00
strfilter.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
strfilter.h perf tools: Fix various typos in comments 2021-03-23 17:13:43 -03:00
string2.h perf tools: Add OCaml demangling 2021-02-17 15:15:06 -03:00
string.c perf tools: Add OCaml demangling 2021-02-17 15:15:06 -03:00
strlist.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
strlist.h
svghelper.c perf cpumap: Migrate to libperf cpumap api 2022-01-22 17:08:42 -03:00
svghelper.h perf timechart: Refactor svg_build_topology_map() 2019-08-29 17:38:31 -03:00
symbol_conf.h perf tools: Add guest_code support 2022-05-23 10:18:38 -03:00
symbol_fprintf.c perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of printed chars 2021-03-08 11:17:51 -03:00
symbol-elf.c perf symbol: Pass is_kallsyms to symbols__fixup_end() 2022-04-28 10:51:20 -03:00
symbol-minimal.c perf tools: Pass build_id object to dso__set_build_id() 2020-10-14 08:46:42 -03:00
symbol.c perf symbol: Remove arch__symbols__fixup_end() 2022-04-28 10:51:40 -03:00
symbol.h perf symbol: Remove arch__symbols__fixup_end() 2022-04-28 10:51:40 -03:00
symsrc.h perf symbols: Move symsrc prototypes to a separate header 2019-08-31 22:24:05 -03:00
synthetic-events.c perf evlist: Rename cpus to user_requested_cpus 2022-04-01 16:19:35 -03:00
synthetic-events.h perf cpumap: Give CPUs their own type 2022-01-12 14:28:23 -03:00
syscalltbl.c perf tools: Generate mips syscalls_n64.c syscall table 2021-03-01 14:49:28 -03:00
syscalltbl.h perf trace: Remove union from syscalltbl, all the fields are needed 2020-05-29 16:50:26 -03:00
target.c perf stat: Enable counting events for BPF programs 2021-01-20 14:25:28 -03:00
target.h perf tools: Create hybrid flag in target 2021-08-11 16:04:33 -03:00
term.c
term.h
thread_map.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
thread_map.h libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
thread-stack.c perf thread-stack: Add thread_stack__br_sample_late() 2020-05-05 16:35:29 -03:00
thread-stack.h perf tools: Remove duplicate struct forward declarations 2021-03-25 08:59:10 -03:00
thread.c perf callchain: Stitch LBR call stack 2020-04-18 09:05:01 -03:00
thread.h perf callchain: Stitch LBR call stack 2020-04-18 09:05:01 -03:00
time-utils.c perf script: Fix --reltime with --time 2019-10-15 08:36:22 -03:00
time-utils.h perf script: Fix --reltime with --time 2019-10-15 08:36:22 -03:00
tool.h perf report: Output data file name in raw trace dump 2022-02-10 16:27:34 -03:00
top.c perf evlist: Rename cpus to user_requested_cpus 2022-04-01 16:19:35 -03:00
top.h perf tui: Only support --tui with slang 2022-02-15 17:15:29 -03:00
topdown.c perf stat: Support hybrid --topdown option 2022-04-24 07:50:18 -03:00
topdown.h perf stat: Support hybrid --topdown option 2022-04-24 07:50:18 -03:00
trace-event-info.c perf trace-event-info: Rename for_each_event. 2021-02-03 13:13:53 -03:00
trace-event-parse.c perf tools: Use ARRAY_SIZE() instead of ad hoc equivalent, spotted by array_size.cocci 2022-03-07 14:54:54 -03:00
trace-event-read.c perf traceevent: Ensure read cmdlines are null terminated. 2021-03-06 16:54:26 -03:00
trace-event-scripting.c perf scripting: Add perf_session to scripting_context 2021-06-01 10:03:17 -03:00
trace-event.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
trace-event.h perf script python: Allow reporting the [un]throttle PERF_RECORD_ meta event 2021-09-03 08:18:25 -03:00
trigger.h perf tools: Remove debug.h from header files not needing it 2019-08-29 17:38:32 -03:00
tsc.c perf session: Dump PERF_RECORD_TIME_CONV event 2021-04-29 10:31:00 -03:00
tsc.h perf session: Dump PERF_RECORD_TIME_CONV event 2021-04-29 10:31:00 -03:00
units.c perf stat: Improve readability of shadow stats 2021-03-15 11:36:54 -03:00
units.h perf stat: Improve readability of shadow stats 2021-03-15 11:36:54 -03:00
unwind-libdw.c perf unwind: Don't show unwind error messages when augmenting frame pointer stack 2022-04-09 12:34:29 -03:00
unwind-libdw.h perf unwind: Don't show unwind error messages when augmenting frame pointer stack 2022-04-09 12:34:29 -03:00
unwind-libunwind-local.c perf unwind: Don't show unwind error messages when augmenting frame pointer stack 2022-04-09 12:34:29 -03:00
unwind-libunwind.c perf unwind: Don't show unwind error messages when augmenting frame pointer stack 2022-04-09 12:34:29 -03:00
unwind.h perf unwind: Don't show unwind error messages when augmenting frame pointer stack 2022-04-09 12:34:29 -03:00
usage.c perf tools: Remove debug.h from places where it is not needed 2019-09-20 09:19:20 -03:00
util.c perf tools: Print warning when HAVE_DEBUGINFOD_SUPPORT is not set and user tries to use debuginfod support 2022-04-20 13:36:36 -03:00
util.h perf tools: Try chroot'ed filename when opening dso/symbol 2022-02-10 15:32:25 -03:00
values.c perf debug: Remove needless include directives from debug.h 2019-08-31 19:10:19 -03:00
values.h
vdso.c perf record: Fix memory leak in vDSO found using ASAN 2021-03-24 10:38:56 -03:00
vdso.h
zlib.c perf tools: Remove util.h from where it is not needed 2019-09-20 09:19:20 -03:00
zstd.c perf tools: Use %zd for size_t printf formats on 32-bit 2020-09-01 12:15:21 -03:00