linux/tools/perf/util
Ian Rogers f9cdeb58a9 perf evlist: Avoid frequency mode for the dummy event
Dummy events are created with an attribute where the period and freq
are zero. evsel__config will then see the uninitialized values and
initialize them in evsel__default_freq_period. As fequency mode is
used by default the dummy event would be set to use frequency
mode. However, this has no effect on the dummy event but does cause
unnecessary timers/interrupts. Avoid this overhead by setting the
period to 1 for dummy events.

evlist__add_aux_dummy calls evlist__add_dummy then sets freq=0 and
period=1. This isn't necessary after this change and so the setting is
removed.

From Stephane:

The dummy event is not counting anything. It is used to collect mmap
records and avoid a race condition during the synthesize mmap phase of
perf record. As such, it should not cause any overhead during active
profiling. Yet, it did. Because of a bug the dummy event was
programmed as a sampling event in frequency mode. Events in that mode
incur more kernel overheads because on timer tick, the kernel has to
look at the number of samples for each event and potentially adjust
the sampling period to achieve the desired frequency. The dummy event
was therefore adding a frequency event to task and ctx contexts we may
otherwise not have any, e.g.,

  perf record -a -e cpu/event=0x3c,period=10000000/.

On each timer tick the perf_adjust_freq_unthr_context() is invoked and
if ctx->nr_freq is non-zero, then the kernel will loop over ALL the
events of the context looking for frequency mode ones. In doing, so it
locks the context, and enable/disable the PMU of each hw event. If all
the events of the context are in period mode, the kernel will have to
traverse the list for nothing incurring overhead. The overhead is
multiplied by a very large factor when this happens in a guest kernel.
There is no need for the dummy event to be in frequency mode, it does
not count anything and therefore should not cause extra overhead for
no reason.

Fixes: 5bae025023 ("perf evlist: Introduce perf_evlist__new_dummy constructor")
Reported-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Yang Jihong <yangjihong1@huawei.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Link: https://lore.kernel.org/r/20230916035640.1074422-1-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2023-09-26 21:43:20 -07:00
..
arm-spe-decoder perf arm-spe: Fix a dangling Documentation/arm64 reference 2023-06-21 08:53:31 -06:00
bpf_skel perf lock contention: Add -G/--cgroup-filter option 2023-09-12 17:32:00 -03:00
cs-etm-decoder perf cs-etm: Add exception level consistency check 2023-06-12 18:18:13 -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 tools: Rename __fallthrough to fallthrough 2023-04-06 21:41:00 -03:00
libunwind perf unwind: Use perf_arch_reg_{ip|sp}() to substitute macros 2023-08-16 08:48:06 -03:00
perf-regs-arch perf parse-regs: Introduce functions perf_arch_reg_{ip|sp}() 2023-08-16 08:46:45 -03:00
scripting-engines perf script python: Cope with declarations after statements found in Python.h 2023-08-03 17:01:28 -03:00
addr_location.c perf addr_location: Add init/exit/copy functions 2023-06-12 15:57:53 -03:00
addr_location.h perf addr_location: Add init/exit/copy functions 2023-06-12 15:57:53 -03:00
affinity.c perf tools: Use dedicated non-atomic clear/set bit helpers 2022-12-05 09:29:06 -03:00
affinity.h
amd-sample-raw.c perf script ibs: Remove unused include 2023-08-23 08:41:52 -03:00
annotate.c perf annotate bpf: Don't enclose non-debug code with an assert() 2023-08-03 17:01:28 -03:00
annotate.h perf annotation: Switch lock from a mutex to a sharded_mutex 2023-06-20 17:04:21 -07: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 unwind arm64: Remove needless event.h & thread.h includes 2022-10-27 16:37:26 -03:00
arm-spe.c perf thread: Add accessor functions for thread 2023-06-12 15:57:53 -03:00
arm-spe.h
auxtrace.c perf map: Add accessor for dso 2023-04-04 16:41:57 -03:00
auxtrace.h perf intel-pt: Synthesize cycle events 2023-02-17 11:02:44 -03:00
block-info.c perf srcline: Optimize comparision against SRCLINE_UNKNOWN 2023-06-12 18:17:00 -03:00
block-info.h
block-range.c perf block-range: Move debug code behind ifndef NDEBUG 2023-04-04 09:39:56 -03:00
block-range.h
bpf_counter_cgroup.c perf stat: Fix handling of unsupported cgroup events when using BPF counters 2023-01-04 10:52:07 -03:00
bpf_counter.c perf bperf: Avoid use after free via unrelated 'struct evsel' anonymous union field 2023-04-11 09:22:25 -03:00
bpf_counter.h perf build: Properly guard libbpf includes 2023-01-10 10:51:39 -03:00
bpf_ftrace.c perf evlist: Rename cpus to user_requested_cpus 2022-04-01 16:19:35 -03:00
bpf_kwork_top.c perf kwork top: Simplify bool conversion 2023-09-18 15:38:46 -07:00
bpf_kwork.c perf kwork: Remove includes not needed in kwork.h 2022-10-31 11:06:46 -03:00
bpf_lock_contention.c perf lock contention: Add -G/--cgroup-filter option 2023-09-12 17:32:00 -03:00
bpf_map.c perf: Stop using bpf_map__def() API 2022-01-12 17:01:38 -08:00
bpf_map.h perf bpf: No need to include compiler.h when HAVE_LIBBPF_SUPPORT is true 2022-10-27 16:37:26 -03:00
bpf_off_cpu.c perf off_cpu: Fix a typo in BTF tracepoint name, it should be 'btf_trace_sched_switch' 2022-12-14 11:24:31 -03:00
bpf-event.c perf map: Add accessor for dso 2023-04-04 16:41:57 -03:00
bpf-event.h perf bpf: Remove unused pthread.h include 2022-10-04 08:55:19 -03:00
bpf-filter.c perf bpf-filter: Fix sample flag check with || 2023-08-15 16:41:48 -03:00
bpf-filter.h perf bpf filter: Add logical OR operator 2023-03-15 11:08:36 -03:00
bpf-filter.l perf bpf filter: Add logical OR operator 2023-03-15 11:08:36 -03:00
bpf-filter.y perf bpf-filter: Add YYDEBUG 2023-09-12 17:50:36 -03:00
bpf-prologue.c
bpf-prologue.h perf bpf: No need to include headers just use forward declarations 2022-10-31 11:05:41 -03:00
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 script: Show branch speculation info 2023-02-02 17:18:31 -03:00
branch.h perf script: Show branch speculation info 2023-02-02 17:18:31 -03:00
Build perf kwork top: Implements BPF-based cpu usage statistics 2023-09-12 17:31:59 -03:00
build-id.c perf build-id: Simplify build_id_cache__cachedir() 2023-08-25 10:24:10 -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 perf path: Make mkpath thread safe, remove 16384 bytes from .bss 2023-05-28 10:24:14 -03:00
cacheline.c
cacheline.h perf c2c: Add report option to show false sharing in adjacent cachelines 2023-02-16 09:33:45 -03:00
call-path.c
call-path.h perf tools: Fix various typos in comments 2021-03-23 17:13:43 -03:00
callchain.c perf callchain: Use pthread keys for tls callchain_cursor 2023-06-12 15:57:54 -03:00
callchain.h perf callchain: Use pthread keys for tls callchain_cursor 2023-06-12 15:57:54 -03:00
cap.c
cap.h
cgroup.c perf lock contention: Add -G/--cgroup-filter option 2023-09-12 17:32:00 -03:00
cgroup.h perf lock contention: Add -G/--cgroup-filter option 2023-09-12 17:32:00 -03:00
clockid.c
clockid.h
cloexec.c perf util: Remove weak sched_getcpu 2023-03-14 08:29:46 -03:00
cloexec.h
color_config.c
color.c
color.h
comm.c
comm.h
compress.h
config.c perf parse-events: Remove BPF event support 2023-08-15 16:41:48 -03:00
config.h perf tools: Add perf_config_scan() 2022-10-04 08:55:21 -03:00
copyfile.c
copyfile.h
counts.c perf stat: Remove unused perf_counts.aggr field 2022-10-27 16:37:25 -03:00
counts.h perf stat: Remove unused perf_counts.aggr field 2022-10-27 16:37:25 -03:00
cpu-set-sched.h
cpumap.c perf pmu: Add CPU map for "cpu" PMUs 2023-05-27 09:38:25 -03:00
cpumap.h perf pmu: Add CPU map for "cpu" PMUs 2023-05-27 09:38:25 -03:00
cputopo.c perf pmus: Remove perf_pmus__has_hybrid 2023-05-27 09:42:38 -03:00
cputopo.h perf expr: Make the online topology accessible globally 2023-02-19 08:03:12 -03:00
cs-etm-base.c perf cs-etm: Move mapping of Trace ID and cpu into helper function 2023-04-04 09:39:56 -03:00
cs-etm.c perf cs-etm: Don't duplicate FIELD_GET() 2023-08-15 16:41:49 -03:00
cs-etm.h perf cs-etm: Track exception level 2023-06-12 18:18:13 -03:00
data-convert-bt.c perf trace: Reduce #ifdefs for TEP_FIELD_IS_RELATIVE 2023-01-19 13:26:28 -03:00
data-convert-json.c perf addr_location: Add init/exit/copy functions 2023-06-12 15:57:53 -03:00
data-convert.h perf data: Add JSON export 2021-04-29 10:30:58 -03:00
data.c perf tools: Fix resources leak in perf_data__open_dir() 2023-01-02 11:45:43 -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 callchain: Use pthread keys for tls callchain_cursor 2023-06-12 15:57:54 -03:00
db-export.h perf scripting python: Add 'addr_location' for 'addr' 2021-05-25 10:07:17 -03:00
debug.c perf debug: Increase libtraceevent logging when verbose 2023-01-19 13:26:49 -03:00
debug.h perf tools: Add WARN_ONCE equivalent for UI warnings 2021-08-03 17:03:18 -03:00
demangle-cxx.cpp perf symbol: Avoid memory leak from abi::__cxa_demangle 2023-03-20 12:49:58 -03:00
demangle-cxx.h perf symbol: Add abi::__cxa_demangle C++ demangling support 2023-03-14 08:29:46 -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
demangle-rust.h
dlfilter.c perf dlfilter: Avoid leak in v0 API test use of resolve_address() 2023-08-30 23:03:03 -03:00
dlfilter.h perf tests: Add dlfilter test 2021-08-11 09:35:44 -03:00
dso.c perf symbol: Remove symbol_name_rb_node 2023-06-23 21:47:20 -07:00
dso.h perf symbol: Remove symbol_name_rb_node 2023-06-23 21:47:20 -07:00
dsos.c perf dso: Add dso__filename_with_chroot() to reduce number of accesses to dso->nsinfo members 2023-04-17 18:47:55 -03:00
dsos.h
dump-insn.c
dump-insn.h
dwarf-aux.c perf probe: Read DWARF files from the correct CU 2023-07-11 11:41:07 -03:00
dwarf-aux.h perf probe: Fix to get declared file name from clang DWARF5 2022-11-03 09:28:46 -03:00
dwarf-regs.c tools/perf: Add basic support for LoongArch 2023-05-01 17:19:59 +08:00
env.c perf pmu: Remove logic for PMU name being NULL 2023-08-25 10:22:16 -03:00
env.h perf header: Record non-CPU PMU capabilities 2022-06-24 13:18:55 -03:00
event.c perf symbols: Add kallsyms__get_symbol_start() 2023-07-28 19:01:16 -03:00
event.h perf symbols: Add kallsyms__get_symbol_start() 2023-07-28 19:01:16 -03:00
events_stats.h perf hist: Add nr_lost_samples to hist_stats 2022-10-04 08:55:20 -03:00
evlist.c perf evlist: Avoid frequency mode for the dummy event 2023-09-26 21:43:20 -07:00
evlist.h perf evlist: Add evlist__findnew_tracking_event() helper 2023-09-12 17:31:32 -03:00
evsel_config.h
evsel_fprintf.c perf callchain: Use pthread keys for tls callchain_cursor 2023-06-12 15:57:54 -03:00
evsel_fprintf.h perf script: Add new output field 'dsoff' to print dso offset 2023-05-12 15:21:49 -03:00
evsel.c perf evsel: Add evsel__intval_common() helper 2023-09-12 17:31:59 -03:00
evsel.h perf evsel: Add evsel__intval_common() helper 2023-09-12 17:31:59 -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: Various spelling fixes 2023-01-23 10:00:47 -03:00
expr.c perf pmu: Move pmu__find_core_pmu() to pmus.c 2023-09-15 16:46:40 -07:00
expr.h perf jevents: Add a new expression builtin strcmp_cpuid_str() 2023-08-17 14:12:14 -03:00
expr.l perf jevents: Add a new expression builtin strcmp_cpuid_str() 2023-08-17 14:12:14 -03:00
expr.y perf expr: Make YYDEBUG dependent on doing a debug build 2023-09-12 17:46:50 -03:00
find-map.c
fncache.c
fncache.h
ftrace.h perf ftrace: Reuse target::initial_delay 2023-03-13 14:52:14 -03:00
genelf_debug.c perf jit: Fix incorrect file name in DWARF line table 2023-06-20 22:18:58 -07:00
genelf.c perf genelf: Fix error code in jit_write_elf() 2022-10-04 08:55:22 -03:00
genelf.h tools/perf: Add basic support for LoongArch 2023-05-01 17:19:59 +08:00
generate-cmdlist.sh perf help: Use HAVE_LIBTRACEEVENT to filter out unsupported commands 2023-01-02 11:51:53 -03:00
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
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.h update to fix build issues using LLVM14 2022-11-11 10:24:23 -08:00
header.c perf tools: Convert to perf_record_header_attr_id() 2023-08-29 14:16:14 -03:00
header.h perf: Extract building cache level for a CPU into separate function 2023-05-23 12:20:14 -03:00
help-unknown-cmd.c perf help: Ensure clean_cmds is called on all paths 2023-06-12 18:18:14 -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 srcline: Optimize comparision against SRCLINE_UNKNOWN 2023-06-12 18:17:00 -03:00
hist.h perf report: Add 'simd' sort field 2023-03-20 19:28:21 -03:00
intel-bts.c perf thread: Add accessor functions for thread 2023-06-12 15:57:53 -03:00
intel-bts.h
intel-pt.c perf intel-pt: Fix missed put and leak 2023-06-12 15:57:53 -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: Pass through 'struct outstate' 2022-11-24 09:40:37 -03:00
iostat.h perf stat: Pass through 'struct outstate' 2022-11-24 09:40:37 -03:00
jit.h perf inject jit: Add namespaces support 2021-02-03 13:10:44 -03:00
jitdump.c perf jit: Fix two thread leaks 2023-06-12 15:57:54 -03:00
jitdump.h
kvm-stat.h perf kvm: Reference count 'struct kvm_info' 2023-03-21 10:06:05 -03:00
kwork.h perf kwork top: Implements BPF-based cpu usage statistics 2023-09-12 17:31:59 -03:00
levenshtein.c perf tools: Fix various typos in comments 2021-03-23 17:13:43 -03:00
levenshtein.h
lock-contention.h perf lock contention: Add -G/--cgroup-filter option 2023-09-12 17:32:00 -03:00
lzma.c perf lzma: Convert some pr_err() to pr_debug() as callers already use pr_debug() 2023-08-22 16:53:32 -03:00
machine.c perf machine: Use true and false for bool variable 2023-09-11 10:26:35 -03:00
machine.h machine: Adopt is_lock_function() from builtin-lock.c 2022-12-14 11:16:12 -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 symbol: Remove symbol_name_rb_node 2023-06-23 21:47:20 -07:00
map.h perf symbol: Remove symbol_name_rb_node 2023-06-23 21:47:20 -07:00
maps.c perf maps: Fix overlapping memory leak 2023-06-12 15:57:54 -03:00
maps.h perf maps: Make delete static, always use put 2023-06-12 15:57:53 -03:00
mem2node.c perf mem2node: Improve warning if detected no memory nodes 2020-11-04 09:42:40 -03:00
mem2node.h
mem-events.c perf pmu: Remove logic for PMU name being NULL 2023-08-25 10:22:16 -03:00
mem-events.h perf pmu: Remove logic for PMU name being NULL 2023-08-25 10:22:16 -03:00
memswap.c
memswap.h
metricgroup.c perf pmu-events: Add extra underscore to function names 2023-08-24 10:43:19 -03:00
metricgroup.h perf metrics: Sort the Default metricgroup 2023-06-16 09:56:36 -03:00
mmap.c perf tools: Use dedicated non-atomic clear/set bit helpers 2022-12-05 09:29:06 -03:00
mmap.h perf mmap: Remove several unneeded includes from util/mmap.h 2022-10-31 11:07:14 -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: Introduce nsinfo__mntns_path() accessor to avoid accessing ->mntns_path directly 2023-04-17 22:22:24 -03:00
namespaces.h perf namespaces: Add reference count checking 2023-04-17 18:51:57 -03:00
off_cpu.h perf offcpu: Accept allowed sample types only 2022-06-28 11:45:45 -03:00
ordered-events.c tools: Rename __fallthrough to fallthrough 2023-04-06 21:41:00 -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 record: Add remaining branch filters: "no_cycles", "no_flags" & "hw_index" 2022-12-14 11:16:12 -03:00
parse-branch-options.h
parse-events.c perf parse-events: Introduce 'struct parse_events_terms' 2023-09-11 10:26:36 -03:00
parse-events.h perf parse-events: Introduce 'struct parse_events_terms' 2023-09-11 10:26:36 -03:00
parse-events.l perf parse-events: Avoid enum casts 2023-09-11 10:26:36 -03:00
parse-events.y perf parse-events: Fix tracepoint name memory leak 2023-09-18 16:47:56 -07: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
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 path: Make mkpath thread safe, remove 16384 bytes from .bss 2023-05-28 10:24:14 -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: Add printing perf_event_attr config symbol in perf_event_attr__fprintf() 2023-06-23 22:30:42 -07:00
perf_regs.c perf parse-regs: Remove PERF_REGS_{MAX|MASK} from common code 2023-08-16 08:49:10 -03:00
perf_regs.h perf parse-regs: Move out arch specific header from util/perf_regs.h 2023-08-16 08:52:45 -03:00
perf-hooks-list.h
perf-hooks.c
perf-hooks.h
PERF-VERSION-GEN perf tools: Don't include signature in version strings 2023-01-02 12:34:06 -03:00
pfm.c perf list pfm: Retry supported test with exclude_kernel 2023-09-12 17:32:00 -03:00
pfm.h perf list: List callback support for libpfm 2022-11-24 10:04:52 -03:00
pmu.c perf pmu: Remove unused function 2023-09-15 16:46:40 -07:00
pmu.h perf pmu: Remove unused function 2023-09-15 16:46:40 -07:00
pmu.l perf pmu: Make parser reentrant 2023-04-06 21:40:28 -03:00
pmu.y perf pmu: Add YYDEBUG 2023-09-12 17:47:00 -03:00
pmus.c perf pmus: Simplify perf_pmus__find_core_pmu() 2023-09-15 16:46:40 -07:00
pmus.h perf pmus: Skip duplicate PMUs and don't print list suffix by default 2023-08-29 14:16:14 -03:00
print_binary.c
print_binary.h
print-events.c perf list: Avoid a hardcoded cpu PMU name 2023-09-12 17:32:00 -03:00
print-events.h perf pmus: Skip duplicate PMUs and don't print list suffix by default 2023-08-29 14:16:14 -03:00
probe-event.c perf probe: Make synthesize_perf_probe_point() private to probe-event.c 2023-08-07 16:40:29 -03:00
probe-event.h perf probe: Make synthesize_perf_probe_point() private to probe-event.c 2023-08-07 16:40:29 -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
probe-finder.c perf probe: Add missing 0x prefix for addresses printed in hexadecimal 2023-04-19 16:38:43 -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
pstack.h
python-ext-sources perf parse-regs: Refactor arch register parsing functions 2023-08-16 08:37:52 -03:00
python.c perf script python: Add stub for PMU symbol to the python binding 2023-08-11 15:15:00 -03:00
rb_resort.h
rblist.c
rblist.h
record.c perf evlist: Remove group option. 2022-12-14 15:28:18 -03:00
record.h perf record: Reuse target::initial_delay 2023-03-13 14:52:14 -03:00
rlimit.c
rlimit.h
rwsem.c
rwsem.h
s390-cpumcf-kernel.h
s390-cpumsf-kernel.h
s390-cpumsf.c perf tools: Move 'struct perf_sample' to a separate header file to disentangle headers 2022-10-31 11:06:41 -03:00
s390-cpumsf.h
s390-sample-raw.c perf pmus: Skip duplicate PMUs and don't print list suffix by default 2023-08-29 14:16:14 -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
sample.h perf event: Add 'simd_flags' field to 'struct perf_sample' 2023-03-20 19:27:00 -03:00
session.c perf tools: Convert to perf_record_header_attr_id() 2023-08-29 14:16:14 -03:00
session.h perf build: Use libtraceevent from the system 2022-12-14 11:16:12 -03:00
setns.c
setup.py perf python: Cope with declarations after statements found in Python.h 2023-08-03 17:01:28 -03:00
sharded_mutex.c perf sharded_mutex: Introduce sharded_mutex 2023-06-20 17:03:43 -07:00
sharded_mutex.h perf sharded_mutex: Introduce sharded_mutex 2023-06-20 17:03:43 -07:00
sideband_evlist.c perf evlist: Rename cpus to user_requested_cpus 2022-04-01 16:19:35 -03:00
smt.c perf expr: Make the online topology accessible globally 2023-02-19 08:03:12 -03:00
smt.h perf expr: Make the online topology accessible globally 2023-02-19 08:03:12 -03:00
sort.c perf srcline: Optimize comparision against SRCLINE_UNKNOWN 2023-06-12 18:17:00 -03:00
sort.h perf report: Add 'simd' sort field 2023-03-20 19:28:21 -03:00
spark.c
spark.h
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: Fix handling of inline functions 2023-06-15 21:54:02 -03:00
srcline.h perf srcline: Add a timeout to reading from addr2line 2023-06-14 18:19:06 -03:00
stat-display.c perf stat-display: Check if snprintf()'s fmt argument is NULL 2023-08-21 10:54:22 -03:00
stat-shadow.c perf stat: New metricgroup output for the default mode 2023-06-16 09:57:19 -03:00
stat.c perf stat: Avoid uninitialized use of perf_stat_config 2023-07-24 18:23:18 -03:00
stat.h perf stat: Show average value on multiple runs 2023-06-16 10:17:45 -03:00
strbuf.c
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
strfilter.c tools: Rename __fallthrough to fallthrough 2023-04-06 21:41:00 -03:00
strfilter.h perf tools: Fix various typos in comments 2021-03-23 17:13:43 -03:00
string2.h perf util: Add a function for replacing characters in a string 2023-09-12 17:32:00 -03:00
string.c perf util: Add a function for replacing characters in a string 2023-09-12 17:32:00 -03:00
strlist.c
strlist.h
svghelper.c perf tools: Allow to use cpuinfo on LoongArch 2023-08-29 14:13:48 -03:00
svghelper.h
symbol_conf.h perf symbol: Remove now unused symbol_conf.sort_by_name 2023-06-23 21:48:49 -07:00
symbol_fprintf.c perf symbol: Remove symbol_name_rb_node 2023-06-23 21:47:20 -07:00
symbol-elf.c perf symbols: Fix DSO kernel load and symbol process to correctly map DSO to its long_name, type and adjust_symbols 2023-08-11 11:27:50 -03:00
symbol-minimal.c perf symbol: Add filename__has_section() 2022-12-21 14:52:40 -03:00
symbol.c perf symbol: Avoid an undefined behavior warning 2023-09-15 16:46:40 -07:00
symbol.h perf symbol: Remove symbol_name_rb_node 2023-06-23 21:47:20 -07:00
symsrc.h perf symbols: Allow for static executables with .plt 2023-02-01 21:51:51 -03:00
synthetic-events.c perf tools: Convert to perf_record_header_attr_id() 2023-08-29 14:16: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: Declare syscalltbl_*[] as const for all archs 2023-06-05 11:36:17 -03:00
syscalltbl.h
target.c perf stat: Enable counting events for BPF programs 2021-01-20 14:25:28 -03:00
target.h perf target: Remove unused hybrid value 2023-05-27 09:38:59 -03:00
term.c
term.h
thread_map.c perf thread_map: Reduce exposure of libperf internal API 2022-11-16 12:17:15 -03:00
thread_map.h perf thread_map: Reduce exposure of libperf internal API 2022-11-16 12:17:15 -03:00
thread-stack.c x86/retpoline,kprobes: Skip optprobe check for indirect jumps with retpolines and IBT 2023-08-14 11:46:51 +02:00
thread-stack.h perf tools: Remove duplicate struct forward declarations 2021-03-25 08:59:10 -03:00
thread.c perf thread: Allow tools to register a thread->priv destructor 2023-07-20 11:22:46 -03:00
thread.h perf thread: Allow tools to register a thread->priv destructor 2023-07-20 11:22:46 -03:00
time-utils.c
time-utils.h
tool.h perf record: Add finished init event 2022-06-23 11:54:22 -03:00
top.c perf util: Move perf_guest/host declarations 2023-04-10 19:22:05 -03:00
top.h perf top: Update use of pthread mutex 2022-10-04 08:55:20 -03:00
topdown.c perf stat: Implement --topdown using json metrics 2023-02-19 08:07:24 -03:00
topdown.h perf stat: Implement --topdown using json metrics 2023-02-19 08:07:24 -03:00
trace-event-info.c perf trace-event-info: Add tracepoint_id_to_name() helper 2023-06-23 22:30:16 -07:00
trace-event-parse.c perf build: Use libtraceevent from the system 2022-12-14 11:16:12 -03:00
trace-event-read.c perf build: Use libtraceevent from the system 2022-12-14 11:16:12 -03:00
trace-event-scripting.c perf script: Fix Python support when no libtraceevent 2023-03-15 10:27:07 -03:00
trace-event.c perf build: Use libtraceevent from the system 2022-12-14 11:16:12 -03:00
trace-event.h perf trace-event-info: Add tracepoint_id_to_name() helper 2023-06-23 22:30:16 -07:00
tracepoint.c perf tracepoint: Fix memory leak in is_valid_tracepoint() 2023-05-02 08:36:14 -03:00
tracepoint.h perf parse-events: Break out tracepoint and printing 2022-08-02 16:32:26 -03:00
trigger.h
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: Use perf_arch_reg_{ip|sp}() to substitute macros 2023-08-16 08:48:06 -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: Use perf_arch_reg_{ip|sp}() to substitute macros 2023-08-16 08:48:06 -03:00
unwind-libunwind.c perf thread: Add accessor functions for thread 2023-06-12 15:57:53 -03:00
unwind.h perf unwind: Use perf_arch_reg_{ip|sp}() to substitute macros 2023-08-16 08:48:06 -03:00
usage.c perf usage: Move usage strings 2023-04-10 19:20:53 -03:00
util.c perf util: Move input_name to util 2023-04-10 19:21:31 -03:00
util.h perf util: Move perf_guest/host declarations 2023-04-10 19:22:05 -03:00
values.c
values.h
vdso.c perf thread: Add accessor functions for thread 2023-06-12 15:57:53 -03:00
vdso.h
zlib.c
zstd.c