The perf-record and perf-stat have supported the option '-C/--cpus'
to count or collect only on the list of CPUs provided. This option
needs to be supported for hybrid as well.
v4:
---
Rename evlist__use_cpu_list to evlist__fix_hybrid_cpus
Add comments to evlist__fix_hybrid_cpus.
v3:
---
Rebase to latest perf/core branch.
v2:
---
Automatically map to hybrid pmu.
For example,
If cpu0-7 are 'cpu_core' and cpu9-11 are 'cpu_atom',
# perf stat -e cycles -C0,11 -- sleep 1
WARNING: use 0 in 'cpu_core' for 'cycles', skip other cpus in list.
WARNING: use 11 in 'cpu_atom' for 'cycles', skip other cpus in list.
Performance counter stats for 'CPU(s) 0,11':
1,914,704 cpu_core/cycles/
2,036,983 cpu_atom/cycles/
1.005815641 seconds time elapsed
It automatically selects cpu0 for cpu_core/cycles/, selects cpu11 for
cpu_atom/cycles/, also with some warnings output.
Jin Yao (3):
libperf: Add perf_cpu_map__default_new()
perf tools: Create hybrid flag in target
perf tools: Enable on a list of CPUs for hybrid
tools/lib/perf/cpumap.c | 5 ++
tools/lib/perf/include/perf/cpumap.h | 1 +
tools/perf/builtin-record.c | 7 +++
tools/perf/builtin-stat.c | 6 +++
tools/perf/util/evlist-hybrid.c | 73 ++++++++++++++++++++++++++++
tools/perf/util/evlist-hybrid.h | 1 +
tools/perf/util/evlist.c | 3 +-
tools/perf/util/pmu.c | 35 +++++++++++++
tools/perf/util/pmu.h | 4 ++
tools/perf/util/target.h | 1 +
10 files changed, 135 insertions(+), 1 deletion(-)