linux/tools/perf/util
Andi Kleen 267ed5d859 perf affinity: Add infrastructure to save/restore affinity
The kernel perf subsystem has to IPI to the target CPU for many
operations. On systems with many CPUs and when managing many events the
overhead can be dominated by lots of IPIs.

An alternative is to set up CPU affinity in the perf tool, then set up
all the events for that CPU, and then move on to the next CPU.

Add some affinity management infrastructure to enable such a model.
Used in followon patches.

Committer notes:

Use zfree() in some places, add missing stdbool.h header, some minor
coding style changes.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: http://lore.kernel.org/lkml/20191121001522.180827-3-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2019-11-28 08:08:38 -03:00
..
c++
cs-etm-decoder
include
intel-pt-decoder
libunwind
scripting-engines perf addr_location: Rename al->mg to al->maps 2019-11-26 11:07:46 -03:00
Build perf affinity: Add infrastructure to save/restore affinity 2019-11-28 08:08:38 -03:00
PERF-VERSION-GEN
affinity.c perf affinity: Add infrastructure to save/restore affinity 2019-11-28 08:08:38 -03:00
affinity.h perf affinity: Add infrastructure to save/restore affinity 2019-11-28 08:08:38 -03:00
annotate.c perf maps: Rename map_groups.h to maps.h 2019-11-26 11:07:46 -03:00
annotate.h perf annotate: Pass a 'map_symbol' in places receiving a pair of 'map' and 'symbol' pointers 2019-11-12 08:20:53 -03:00
archinsn.h
arm-spe-pkt-decoder.c
arm-spe-pkt-decoder.h
arm-spe.c
arm-spe.h
auxtrace.c perf auxtrace: Add support for queuing AUX area samples 2019-11-22 10:48:13 -03:00
auxtrace.h perf auxtrace: Add support for queuing AUX area samples 2019-11-22 10:48:13 -03:00
block-info.c perf report: Jump to symbol source view from total cycles view 2019-11-19 19:37:04 -03:00
block-info.h perf report: Jump to symbol source view from total cycles view 2019-11-19 19:37:04 -03:00
block-range.c
block-range.h
bpf-event.c perf maps: Merge 'struct maps' with 'struct map_groups' 2019-11-26 11:07:46 -03:00
bpf-event.h
bpf-loader.c libperf: Add perf_evlist__first()/last() functions 2019-09-25 09:51:48 -03:00
bpf-loader.h
bpf-prologue.c
bpf-prologue.h
bpf_map.c
bpf_map.h
branch.c
branch.h
build-id.c perf copyfile: Move copyfile routines to separate files 2019-09-25 09:51:49 -03:00
build-id.h
cache.h
cacheline.c
cacheline.h
call-path.c
call-path.h
callchain.c perf map_symbol: Rename ms->mg to ms->maps 2019-11-26 11:07:46 -03:00
callchain.h perf callchain: Use 'struct map_symbol' in 'struct callchain_cursor_node' 2019-11-12 08:20:53 -03:00
cap.c
cap.h
cgroup.c
cgroup.h
cloexec.c
cloexec.h
color.c
color.h
color_config.c
comm.c
comm.h
compress.h
config.c
config.h
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
counts.h
cpu-set-sched.h
cpumap.c perf stat: Add --per-node agregation support 2019-11-06 15:49:39 -03:00
cpumap.h perf stat: Add --per-node agregation support 2019-11-06 15:49:39 -03:00
cputopo.c
cputopo.h
cs-etm.c perf maps: Merge 'struct maps' with 'struct map_groups' 2019-11-26 11:07:46 -03:00
cs-etm.h
data-convert-bt.c
data-convert-bt.h
data-convert.h
data.c perf record: Put a copy of kcore into the perf.data directory 2019-11-06 15:43:05 -03:00
data.h perf record: Put a copy of kcore into the perf.data directory 2019-11-06 15:43:05 -03:00
db-export.c perf addr_location: Rename al->mg to al->maps 2019-11-26 11:07:46 -03:00
db-export.h
debug.c perf tool: Provide an option to print perf_event_open args and return value 2019-11-12 08:32:27 -03:00
debug.h perf tool: Provide an option to print perf_event_open args and return value 2019-11-12 08:32:27 -03:00
demangle-java.c
demangle-java.h
demangle-rust.c
demangle-rust.h
dso.c perf dso: Move dso_id from 'struct map' to 'struct dso' 2019-11-19 19:12:26 -03:00
dso.h perf dso: Move dso_id from 'struct map' to 'struct dso' 2019-11-19 19:12:26 -03:00
dsos.c perf dso: Move dso_id from 'struct map' to 'struct dso' 2019-11-19 19:12:26 -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: Show correct statement line number by perf probe -l 2019-11-18 18:56:27 -03:00
dwarf-aux.h perf probe: Fix to show function entry line as probe-able 2019-11-06 15:43:06 -03:00
dwarf-regs.c
env.c perf env: Add perf_env__numa_node() 2019-11-06 15:49:39 -03:00
env.h perf env: Add perf_env__numa_node() 2019-11-06 15:49:39 -03:00
event.c perf maps: Rename 'mg' variables to 'maps' 2019-11-26 11:07:46 -03:00
event.h perf tools: Add kernel AUX area sampling definitions 2019-11-21 10:54:20 -03:00
events_stats.h
evlist.c Merge branch 'perf/urgent' into perf/core, to pick up fixes 2019-10-22 01:15:32 +02:00
evlist.h perf record: Add a function to test for kernel support for AUX area sampling 2019-11-22 10:43:24 -03:00
evsel.c perf pmu: When using default config, record which bits of config were changed by the user 2019-11-22 10:48:13 -03:00
evsel.h perf evsel: Move config terms to a separate header 2019-09-25 16:26:40 -03:00
evsel_config.h perf pmu: When using default config, record which bits of config were changed by the user 2019-11-22 10:48:13 -03:00
evsel_fprintf.c perf callchain: Use 'struct map_symbol' in 'struct callchain_cursor_node' 2019-11-12 08:20:53 -03:00
evsel_fprintf.h perf evsel: Introduce evsel_fprintf.h 2019-09-25 16:26:34 -03:00
evswitch.c
evswitch.h
expr.h
expr.y
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
genelf.c
genelf.h perf jvmti: Include JVMTI support for s390 2019-09-25 16:26:41 -03:00
genelf_debug.c
generate-cmdlist.sh
get_current_dir_name.c
get_current_dir_name.h
group.h
header.c perf tools: Fix resource leak of closedir() on the error paths 2019-10-15 11:54:11 -03:00
header.h perf data: Move perf_dir_version into data.h 2019-11-06 15:43:05 -03:00
help-unknown-cmd.c
help-unknown-cmd.h
hist.c perf map_symbol: Rename ms->mg to ms->maps 2019-11-26 11:07:46 -03:00
hist.h perf report: Jump to symbol source view from total cycles view 2019-11-19 19:37:04 -03:00
intel-bts.c libperf: Move 'ids' from 'struct evsel' to 'struct perf_evsel' 2019-09-25 09:51:47 -03:00
intel-bts.h
intel-pt.c perf maps: Merge 'struct maps' with 'struct map_groups' 2019-11-26 11:07:46 -03:00
intel-pt.h
intlist.c
intlist.h
jit.h
jitdump.c perf inject jit: Fix JIT_CODE_MOVE filename 2019-09-30 17:29:49 -03:00
jitdump.h
kvm-stat.h
levenshtein.c
levenshtein.h
llvm-utils.c perf llvm: Make .o saving a debug message, not an info one 2019-11-06 15:43:05 -03:00
llvm-utils.h
lzma.c
machine.c perf maps: Rename 'mg' variables to 'maps' 2019-11-26 11:07:46 -03:00
machine.h perf maps: Rename map_groups.h to maps.h 2019-11-26 11:07:46 -03:00
map.c perf maps: Rename 'mg' variables to 'maps' 2019-11-26 11:07:46 -03:00
map.h perf maps: Merge 'struct maps' with 'struct map_groups' 2019-11-26 11:07:46 -03:00
map_symbol.h perf map_symbol: Rename ms->mg to ms->maps 2019-11-26 11:07:46 -03:00
maps.h perf maps: Rename map_groups.h to maps.h 2019-11-26 11:07:46 -03:00
mem-events.c pref tools: Make 'struct addr_map_symbol' contain 'struct map_symbol' 2019-11-12 08:20:53 -03:00
mem-events.h
mem2node.c
mem2node.h
memswap.c
memswap.h
metricgroup.c perf parse: Report initial event parsing error 2019-11-18 19:14:29 -03:00
metricgroup.h
mmap.c libperf: Centralize map refcnt setting 2019-10-10 12:52:41 -03:00
mmap.h libperf: Adopt perf_mmap__read_event() from tools/perf 2019-10-10 11:49:46 -03:00
namespaces.c
namespaces.h
ordered-events.c
ordered-events.h
parse-branch-options.c
parse-branch-options.h
parse-events.c perf parse: Fix potential memory leak when handling tracepoint errors 2019-11-22 10:48:14 -03:00
parse-events.h perf record: Add aux-sample-size config term 2019-11-22 10:48:13 -03:00
parse-events.l perf record: Add aux-sample-size config term 2019-11-22 10:48:13 -03:00
parse-events.y perf parse: Use YYABORT to clear stack after failure, plugging leaks 2019-11-12 08:34:16 -03:00
parse-regs-options.c perf tools: Avoid 'sample_reg_masks' being const + weak 2019-10-10 09:29:33 -03:00
parse-regs-options.h
path.c
path.h
perf-hooks-list.h
perf-hooks.c
perf-hooks.h
perf_event_attr_fprintf.c perf tools: Add kernel AUX area sampling definitions 2019-11-21 10:54:20 -03:00
perf_regs.c perf tools: Avoid 'sample_reg_masks' being const + weak 2019-10-10 09:29:33 -03:00
perf_regs.h perf regs: Make perf_reg_name() return "unknown" instead of NULL 2019-11-28 08:08:38 -03:00
pmu.c perf pmu: Use file system cache to optimize sysfs access 2019-11-28 08:08:38 -03:00
pmu.h perf pmu: When using default config, record which bits of config were changed by the user 2019-11-22 10:48:13 -03:00
pmu.l
pmu.y
print_binary.c
print_binary.h
probe-event.c perf maps: Rename map_groups.h to maps.h 2019-11-26 11:07:46 -03:00
probe-event.h perf probe: Trace a magic number if variable is not found 2019-11-18 19:09:23 -03:00
probe-file.c perf probe: Support DW_AT_const_value constant value 2019-11-18 19:08:02 -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 spelling mistake "addrees" -> "address" 2019-11-22 10:48:14 -03:00
probe-finder.h perf probe: Trace a magic number if variable is not found 2019-11-18 19:09:23 -03:00
pstack.c
pstack.h
python-ext-sources perf affinity: Add infrastructure to save/restore affinity 2019-11-28 08:08:38 -03:00
python.c perf tool: Provide an option to print perf_event_open args and return value 2019-11-12 08:32:27 -03:00
rb_resort.h
rblist.c
rblist.h
record.c perf record: Add a function to test for kernel support for AUX area sampling 2019-11-22 10:43:24 -03:00
record.h perf auxtrace: Add support for AUX area sample recording 2019-11-22 10:48:13 -03:00
rlimit.c
rlimit.h
rwsem.c
rwsem.h
s390-cpumcf-kernel.h
s390-cpumsf-kernel.h
s390-cpumsf.c
s390-cpumsf.h
s390-sample-raw.c
sample-raw.c
sample-raw.h
session.c perf session: Add facility to peek at all events 2019-11-22 10:48:13 -03:00
session.h perf session: Add facility to peek at all events 2019-11-22 10:48:13 -03:00
setns.c
setup.py
smt.c
smt.h
sort.c perf dso: Move dso_id from 'struct map' to 'struct dso' 2019-11-19 19:12:26 -03:00
sort.h perf diff: Report noisy for cycles diff 2019-10-11 10:57:00 -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 pmu: Use file system cache to optimize sysfs access 2019-11-28 08:08:38 -03:00
srccode.h
srcline.c
srcline.h
stat-display.c perf stat: Add --per-node agregation support 2019-11-06 15:49:39 -03:00
stat-shadow.c perf stat: Fix free memory access / memory leaks in metrics 2019-09-25 16:26:40 -03:00
stat.c perf stat: Add --per-node agregation support 2019-11-06 15:49:39 -03:00
stat.h perf stat: Add --per-node agregation support 2019-11-06 15:49:39 -03:00
strbuf.c
strbuf.h
strfilter.c
strfilter.h
string.c
string2.h perf string: Export asprintf__tp_filter_pids() 2019-10-15 13:03:57 -03:00
strlist.c
strlist.h
svghelper.c
svghelper.h
symbol-elf.c perf maps: Rename map_groups.h to maps.h 2019-11-26 11:07:46 -03:00
symbol-minimal.c
symbol.c perf maps: Rename 'mg' variables to 'maps' 2019-11-26 11:07:46 -03:00
symbol.h perf maps: Rename 'mg' variables to 'maps' 2019-11-26 11:07:46 -03:00
symbol_conf.h perf report: Sort by sampled cycles percent per block for stdio 2019-11-07 10:14:48 -03:00
symbol_fprintf.c
symsrc.h
synthetic-events.c perf maps: Merge 'struct maps' with 'struct map_groups' 2019-11-26 11:07:46 -03:00
synthetic-events.h
syscalltbl.c
syscalltbl.h
target.c
target.h
term.c
term.h
thread-stack.c perf thread: Rename thread->mg to thread->maps 2019-11-26 11:07:46 -03:00
thread-stack.h
thread.c perf thread: Rename thread->mg to thread->maps 2019-11-26 11:07:46 -03:00
thread.h perf thread: Rename thread->mg to thread->maps 2019-11-26 11:07:46 -03:00
thread_map.c
thread_map.h
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
top.c libperf: Add perf_evlist__first()/last() functions 2019-09-25 09:51:48 -03:00
top.h
trace-event-info.c libperf: Move 'page_size' global variable to libperf 2019-09-25 09:51:48 -03:00
trace-event-parse.c perf tools: Remove unused trace_find_next_event() 2019-11-05 08:39:27 -03:00
trace-event-read.c
trace-event-scripting.c
trace-event.c
trace-event.h perf tools: Remove unused trace_find_next_event() 2019-11-05 08:39:27 -03:00
trigger.h
tsc.c
tsc.h
units.c
units.h
unwind-libdw.c perf map_symbol: Rename ms->mg to ms->maps 2019-11-26 11:07:46 -03:00
unwind-libdw.h
unwind-libunwind-local.c perf maps: Rename 'mg' variables to 'maps' 2019-11-26 11:07:46 -03:00
unwind-libunwind.c perf maps: Rename 'mg' variables to 'maps' 2019-11-26 11:07:46 -03:00
unwind.h perf maps: Merge 'struct maps' with 'struct map_groups' 2019-11-26 11:07:46 -03:00
usage.c
util.c perf record: Put a copy of kcore into the perf.data directory 2019-11-06 15:43:05 -03:00
util.h perf copyfile: Move copyfile routines to separate files 2019-09-25 09:51:49 -03:00
values.c
values.h
vdso.c perf thread: Rename thread->mg to thread->maps 2019-11-26 11:07:46 -03:00
vdso.h
xyarray.c
zlib.c
zstd.c