linux/tools/perf/util
Eduard Zingerman c302378bc1 libbpf: Hashmap interface update to allow both long and void* keys/values
An update for libbpf's hashmap interface from void* -> void* to a
polymorphic one, allowing both long and void* keys and values.

This simplifies many use cases in libbpf as hashmaps there are mostly
integer to integer.

Perf copies hashmap implementation from libbpf and has to be
updated as well.

Changes to libbpf, selftests/bpf and perf are packed as a single
commit to avoid compilation issues with any future bisect.

Polymorphic interface is acheived by hiding hashmap interface
functions behind auxiliary macros that take care of necessary
type casts, for example:

    #define hashmap_cast_ptr(p)						\
	({								\
		_Static_assert((p) == NULL || sizeof(*(p)) == sizeof(long),\
			       #p " pointee should be a long-sized integer or a pointer"); \
		(long *)(p);						\
	})

    bool hashmap_find(const struct hashmap *map, long key, long *value);

    #define hashmap__find(map, key, value) \
		hashmap_find((map), (long)(key), hashmap_cast_ptr(value))

- hashmap__find macro casts key and value parameters to long
  and long* respectively
- hashmap_cast_ptr ensures that value pointer points to a memory
  of appropriate size.

This hack was suggested by Andrii Nakryiko in [1].
This is a follow up for [2].

[1] https://lore.kernel.org/bpf/CAEf4BzZ8KFneEJxFAaNCCFPGqp20hSpS2aCj76uRk3-qZUH5xg@mail.gmail.com/
[2] https://lore.kernel.org/bpf/af1facf9-7bc8-8a3d-0db4-7b3f333589a2@meta.com/T/#m65b28f1d6d969fcd318b556db6a3ad499a42607d

Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20221109142611.879983-2-eddyz87@gmail.com
2022-11-09 20:45:14 -08:00
..
arm-spe-decoder perf arm-spe: Use SPE data source for neoverse cores 2022-08-11 19:12:01 -03:00
bpf_skel perf stat: Support old kernels for bperf cgroup counting 2022-10-14 10:29:05 -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
hisi-ptt-decoder perf auxtrace arm64: Add support for parsing HiSilicon PCIe Trace packet 2022-10-15 10:13:16 -03:00
include tools headers: Update the copy of x86's memcpy_64.S used in 'perf bench' 2022-10-25 17:40:48 -03:00
intel-pt-decoder perf intel-pt: Remove first line of log dumped on error 2022-10-04 08:55:21 -03:00
libunwind perf unwind arm64: Use perf's copy of kernel headers 2022-05-26 12:36:58 -03:00
scripting-engines perf build: Fixup disabling of -Wdeprecated-declarations for the python scripting engine 2022-09-29 16:03:35 -03:00
affinity.c perf affinity: Fix out of bound access to "sched_cpus" mask 2022-09-06 09:45:23 -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 script ibs: Support new IBS bits in raw trace dump 2022-06-24 13:18:55 -03:00
annotate.c perf annotate: Toggle full address <-> offset display 2022-10-04 08:55:22 -03:00
annotate.h perf annotate: Toggle full address <-> offset display 2022-10-04 08:55:22 -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: augment the data source type with neoverse_spe list 2022-09-28 11:26:33 -03:00
arm-spe.h
auxtrace.c perf auxtrace: Fix address filter symbol name match for modules 2022-10-26 10:49:42 -03:00
auxtrace.h perf auxtrace arm64: Add support for HiSilicon PCIe Tune and Trace device driver 2022-10-15 10:13:16 -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 stat: Use evsel->core.cpus to iterate cpus in BPF cgroup counters 2022-09-21 10:30:55 -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_kwork.c perf kwork: Add workqueue trace BPF support 2022-07-26 16:31:54 -03:00
bpf_lock_contention.c perf lock: Remove unused struct lock_contention_key 2022-10-06 08:03:52 -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 offcpu: Track child processes 2022-08-11 17:57:34 -03:00
bpf-event.c perf bpf: Fix build with libbpf 0.7.0 by adding prototype for bpf_load_program() 2022-10-25 17:40:48 -03:00
bpf-event.h perf bpf: Remove unused pthread.h include 2022-10-04 08:55:19 -03:00
bpf-loader.c libbpf: Hashmap interface update to allow both long and void* keys/values 2022-11-09 20:45:14 -08: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: 8 byte align bpil data 2022-06-28 12:05:25 -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 branch: Add PERF_BR_NEW_ARCH_[N] map for BRBE on arm64 platform 2022-10-04 08:55:20 -03:00
branch.h perf branch: Add branch privilege information request flag 2022-10-04 08:55:20 -03:00
Build perf auxtrace arm64: Add support for parsing HiSilicon PCIe Trace packet 2022-10-15 10:13:16 -03:00
build-id.c perf dso: Hold lock when accessing nsinfo 2022-10-04 08:55:20 -03:00
build-id.h perf buildid-cache: Add guestmount'd files to the build ID cache 2022-07-20 11:07:53 -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 callchain: Remove unneeded 'result' variable 2022-10-04 08:55:21 -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
config.c perf tools: Add perf_config_scan() 2022-10-04 08:55:21 -03:00
config.h perf tools: Add perf_config_scan() 2022-10-04 08:55: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 stat: Rename to aggr_cpu_id.thread_idx 2022-10-06 08:03:53 -03:00
cpumap.h perf stat: Rename to aggr_cpu_id.thread_idx 2022-10-06 08:03:53 -03:00
cputopo.c perf topology: Add core_wide 2022-10-04 08:55:22 -03:00
cputopo.h perf topology: Add core_wide 2022-10-04 08:55:22 -03:00
cs-etm.c perf cs-etm: Fix duplicated 'the' in comment 2022-07-20 11:09:11 -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 data convert: Prefer sampled CPU when exporting JSON 2022-06-23 11:54:21 -03:00
data-convert.h perf data: Add JSON export 2021-04-29 10:30:58 -03:00
data.c perf tools: Automatically use guest kcore_dir if present 2022-07-20 11:08:37 -03:00
data.h perf data: Add missing unistd.h header needed for pid_t 2022-07-25 18:10:43 -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 dlfilter: Add machine_pid and vcpu 2022-07-20 11:08:13 -03:00
dlfilter.h perf tests: Add dlfilter test 2021-08-11 09:35:44 -03:00
dso.c perf dso: Hold lock when accessing nsinfo 2022-10-04 08:55:20 -03:00
dso.h perf dso: Update use of pthread mutex 2022-10-04 08:55:20 -03:00
dsos.c perf tools: Fix dso_id inode generation comparison 2022-07-19 16:19:00 -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 header: Record non-CPU PMU capabilities 2022-06-24 13:18:55 -03:00
env.h perf header: Record non-CPU PMU capabilities 2022-06-24 13:18:55 -03:00
event.c perf record: Add finished init event 2022-06-23 11:54:22 -03:00
event.h perf tools: Support reading PERF_FORMAT_LOST 2022-08-19 15:56:56 -03:00
events_stats.h perf hist: Add nr_lost_samples to hist_stats 2022-10-04 08:55:20 -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 tools: Add evlist__add_sched_switch() 2022-10-06 08:03:53 -03:00
evlist.h perf tools: Add evlist__add_sched_switch() 2022-10-06 08:03:53 -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 libbpf: Hashmap interface update to allow both long and void* keys/values 2022-11-09 20:45:14 -08:00
evsel.h perf record: Set PERF_FORMAT_LOST by default 2022-10-04 08:55:20 -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 libbpf: Hashmap interface update to allow both long and void* keys/values 2022-11-09 20:45:14 -08:00
expr.h perf metrics: Wire up core_wide 2022-10-04 08:55:22 -03:00
expr.l perf metrics: Wire up core_wide 2022-10-04 08:55:22 -03:00
expr.y perf expr: Allow a double if expression 2022-10-06 08:03:52 -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 genelf: Fix error code in jit_write_elf() 2022-10-04 08:55:22 -03:00
genelf.h perf inject: Fix GEN_ELF_TEXT_OFFSET for jit 2022-10-15 10:13:16 -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 libbpf: Hashmap interface update to allow both long and void* keys/values 2022-11-09 20:45:14 -08:00
hashmap.h libbpf: Hashmap interface update to allow both long and void* keys/values 2022-11-09 20:45:14 -08:00
header.c perf events: Prefer union over variable length array 2022-10-04 08:55:21 -03:00
header.h Merge remote-tracking branch 'torvalds/master' into perf/core 2022-07-18 10:36:11 -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
hisi-ptt.c perf auxtrace arm64: Add support for parsing HiSilicon PCIe Trace packet 2022-10-15 10:13:16 -03:00
hisi-ptt.h perf auxtrace arm64: Add support for parsing HiSilicon PCIe Trace packet 2022-10-15 10:13:16 -03:00
hist.c perf tools: Add 'addr' sort key 2022-10-04 08:55:22 -03:00
hist.h perf tools: Add 'addr' sort key 2022-10-04 08:55:22 -03:00
intel-bts.c perf tools: Use __BYTE_ORDER__ 2021-11-07 12:27:38 -03:00
intel-bts.h
intel-pt.c perf intel-pt: Fix segfault in intel_pt_print_info() with uClibc 2022-10-15 10:13:16 -03:00
intel-pt.h
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 jit: Remove unused struct debug_line_info 2022-10-06 08:03:51 -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
kwork.h perf kwork: Implement BPF trace 2022-07-26 16:31:54 -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 bpf: Convert legacy map definition to BTF-defined 2022-08-01 14:43:13 -03:00
llvm-utils.h perf tools: Remove debug.h from header files not needing it 2019-08-29 17:38:32 -03:00
lock-contention.h perf lock contention: Fix a build error on 32-bit 2022-10-06 08:03:51 -03:00
lzma.c perf lzma: Close lzma stream on exit 2021-07-15 17:30:22 -03:00
machine.c perf machine: Remove unused struct process_args 2022-10-06 08:03:51 -03:00
machine.h perf machine: Use realloc_array_as_needed() in machine__set_current_tid() 2022-07-20 11:08:37 -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 dso: Hold lock when accessing nsinfo 2022-10-04 08:55:20 -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: Print "LFB/MAB" for PERF_MEM_LVLNUM_LFB 2022-10-06 16:32:05 -03:00
mem-events.h perf mem: Add statistics for peer snooping 2022-08-11 19:12: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 libbpf: Hashmap interface update to allow both long and void* keys/values 2022-11-09 20:45:14 -08:00
metricgroup.h perf metrics: Wire up core_wide 2022-10-04 08:55:22 -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 mmap: Remove unnecessary pthread.h include 2022-10-04 08:55:20 -03:00
mutex.c perf mutex: Add thread safety annotations 2022-10-04 08:55:20 -03:00
mutex.h perf mutex: Add thread safety annotations 2022-10-04 08:55:20 -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 offcpu: Accept allowed sample types only 2022-06-28 11:45:45 -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 ordered_events: Add ordered_events__last_flush_time() 2022-07-20 11:07:30 -03:00
parse-branch-options.c perf branch: Add branch privilege information request flag 2022-10-04 08:55:20 -03:00
parse-branch-options.h
parse-events-hybrid.c perf parse-events: Remove "not supported" hybrid cache events 2022-09-26 10:16:26 -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: Skip and warn on unknown format 'configN' attrs 2022-10-14 12:23:09 -03:00
parse-events.h perf parse-events: Remove "not supported" hybrid cache events 2022-09-26 10:16:26 -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
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 tools: Do not pass NULL to parse_events() 2022-08-10 14:30:09 -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: Print LOST read format in the verbose mode 2022-10-04 08:55:20 -03:00
perf_regs.c perf tools arm64: Add support for VG register 2022-05-27 13:21:33 -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 empty version number when building outside of a git repo 2022-10-06 08:03:52 -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: Skip and warn on unknown format 'configN' attrs 2022-10-14 12:23:09 -03:00
pmu.h perf: Skip and warn on unknown format 'configN' attrs 2022-10-14 12:23:09 -03:00
pmu.l perf: Skip and warn on unknown format 'configN' attrs 2022-10-14 12:23:09 -03:00
pmu.y perf: Skip and warn on unknown format 'configN' attrs 2022-10-14 12:23:09 -03:00
print_binary.c perf python scripting: Fix printable strings in python3 scripts 2020-10-01 12:10:56 -03:00
print_binary.h
print-events.c perf parse-events: Remove "not supported" hybrid cache events 2022-09-26 10:16:26 -03:00
print-events.h perf parse-events: Break out tracepoint and printing 2022-08-02 16:32:26 -03:00
probe-event.c perf dso: Hold lock when accessing nsinfo 2022-10-04 08:55:20 -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 perf unwind: Use dynamic register set for DWARF unwind 2022-05-26 12:41:36 -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
rblist.h
record.c perf tools: Do not pass NULL to parse_events() 2022-08-10 14:30:09 -03:00
record.h perf record: Add new option to sample identifier 2022-06-23 11:54:22 -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-events: Hide the pmu_events 2022-08-13 15:02:08 -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 cpumap: Add range data encoding 2022-10-04 08:55:21 -03:00
session.h perf tools: Export perf_event__process_finished_round() 2022-07-20 11:07:37 -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 python: Ignore unused command line arguments when building with clang 2022-07-20 15:14:39 -03:00
sideband_evlist.c perf evlist: Rename cpus to user_requested_cpus 2022-04-01 16:19:35 -03:00
smt.c perf topology: Add core_wide 2022-10-04 08:55:22 -03:00
smt.h perf topology: Add core_wide 2022-10-04 08:55:22 -03:00
sort.c perf tools: Add 'addr' sort key 2022-10-04 08:55:22 -03:00
sort.h perf tools: Add 'addr' sort key 2022-10-04 08:55: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: Fix cpu check to use id.cpu.cpu in aggr_printout() 2022-10-06 14:50:55 -03:00
stat-shadow.c libbpf: Hashmap interface update to allow both long and void* keys/values 2022-11-09 20:45:14 -08:00
stat.c libbpf: Hashmap interface update to allow both long and void* keys/values 2022-11-09 20:45:14 -08:00
stat.h perf stat: Kill unused per-thread runtime stats 2022-10-06 08:03:53 -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 string: Remove unused macro K() 2022-10-04 08:55:23 -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 kcore_copy: Do not check /proc/modules is unchanged 2022-09-21 16:08:00 -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 dso: Hold lock when accessing nsinfo 2022-10-04 08:55:20 -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 record: Save DSO build-ID for synthesizing 2022-10-06 11:12:14 -03:00
synthetic-events.h perf cpumap: Synthetic events and const/static 2022-08-19 12:26:58 -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 tools: Add guest_cpu to hypervisor threads 2022-07-20 11:08:04 -03:00
thread.h perf tools: Add guest_cpu to hypervisor threads 2022-07-20 11:08:04 -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 record: Add finished init event 2022-06-23 11:54:22 -03:00
top.c perf evlist: Rename cpus to user_requested_cpus 2022-04-01 16:19:35 -03:00
top.h perf top: Update use of pthread mutex 2022-10-04 08:55:20 -03:00
topdown.c perf stat: Add topdown metrics in the default perf stat on the hybrid machine 2022-07-29 13:43:34 -03:00
topdown.h perf stat: Add topdown metrics in the default perf stat on the hybrid machine 2022-07-29 13:43:34 -03:00
trace-event-info.c perf parse-events: Break out tracepoint and printing 2022-08-02 16:32:26 -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
tracepoint.c perf parse-events: Break out tracepoint and printing 2022-08-02 16:32:26 -03:00
tracepoint.h perf parse-events: Break out tracepoint and printing 2022-08-02 16:32:26 -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 tsc: Add arch TSC frequency information 2022-07-25 12:28: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: Fix unitialized 'offset' variable on aarch64 2022-07-02 09:16:52 -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: Add reallocarray_as_needed() 2022-07-20 11:08:37 -03:00
util.h perf tools: Add reallocarray_as_needed() 2022-07-20 11:08:37 -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