linux/tools/perf
Kan Liang 3612ca8e29 perf stat: Fix the hard-coded metrics calculation on the hybrid
The hard-coded metrics is wrongly calculated on the hybrid machine.

$ perf stat -e cycles,instructions -a sleep 1

 Performance counter stats for 'system wide':

        18,205,487      cpu_atom/cycles/
         9,733,603      cpu_core/cycles/
         9,423,111      cpu_atom/instructions/     #  0.52  insn per cycle
         4,268,965      cpu_core/instructions/     #  0.23  insn per cycle

The insn per cycle for cpu_core should be 4,268,965 / 9,733,603 = 0.44.

When finding the metric events, the find_stat() doesn't take the PMU
type into account. The cpu_atom/cycles/ is wrongly used to calculate
the IPC of the cpu_core.

In the hard-coded metrics, the events from a different PMU are only
SW_CPU_CLOCK and SW_TASK_CLOCK. They both have the stat type,
STAT_NSECS. Except the SW CLOCK events, check the PMU type as well.

Fixes: 0a57b91080 ("perf stat: Use counts rather than saved_value")
Reported-by: Khalil, Amiri <amiri.khalil@intel.com>
Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240606180316.4122904-1-kan.liang@linux.intel.com
2024-06-21 09:43:09 -07:00
..
arch perf tools fixes and improvements for v6.10: 2024-05-21 15:45:14 -07:00
bench tools/perf: Fix timing issue with parallel threads in perf bench wake-up-parallel 2024-06-13 21:27:49 -07:00
dlfilters perf dlfilter: Add a test for object_code() 2023-09-30 00:09:06 -07:00
Documentation perf doc: Add AMD IBS usage document 2024-06-20 16:51:55 -07:00
include/perf perf dlfilter: Add al_cleanup() 2023-08-15 16:41:49 -03:00
jvmti
pmu-events perf vendor events: Add westmereex counter information 2024-06-20 16:56:57 -07:00
python
scripts perf script: netdev-times: add location parameter to consume_skb 2024-06-06 23:29:23 -07:00
tests tools/perf: Handle perftool-testsuite_probe testcases fail when kernel debuginfo is not present 2024-06-20 10:05:04 -07:00
trace tools include UAPI: Sync linux/vhost.h with the kernel sources 2024-04-22 17:44:57 -03:00
ui perf hist: Honor symbol_conf.skip_empty 2024-06-15 21:04:04 -07:00
util perf stat: Fix the hard-coded metrics calculation on the hybrid 2024-06-21 09:43:09 -07:00
.gitignore perf build: Shellcheck support for OUTPUT directory 2023-12-05 15:46:43 -03:00
Build perf build: Add shellcheck to tools/perf scripts 2024-04-12 17:54:02 -03:00
builtin-annotate.c perf hist: Add symbol_conf.skip_empty 2024-06-15 21:04:04 -07:00
builtin-bench.c perf bench uprobe: Add uretprobe variant of uprobe benchmarks 2024-04-12 17:54:02 -03:00
builtin-buildid-cache.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
builtin-buildid-list.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
builtin-c2c.c perf mem-info: Add reference count checking 2024-05-07 18:06:44 -03:00
builtin-config.c perf path: Make mkpath thread safe, remove 16384 bytes from .bss 2023-05-28 10:24:14 -03:00
builtin-daemon.c perf daemon: Fix file leak in daemon_session__control 2024-05-10 11:28:11 -03:00
builtin-data.c
builtin-diff.c perf diff: Replaces some ',' as separator with the more usual ';' 2023-07-20 11:43:45 -03:00
builtin-evlist.c
builtin-ftrace.c libperf cpumap: Replace usage of perf_cpu_map__new(NULL) with perf_cpu_map__new_online_cpus() 2023-12-12 14:55:13 -03:00
builtin-help.c perf path: Make mkpath thread safe, remove 16384 bytes from .bss 2023-05-28 10:24:14 -03:00
builtin-inject.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
builtin-kallsyms.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
builtin-kmem.c perf evsel: Use evsel__name_is() helper 2024-04-03 11:48:56 -03:00
builtin-kvm.c
builtin-kwork.c perf kwork: Use zfree() to avoid possibly accessing dangling pointers 2024-05-07 12:44:02 -03:00
builtin-list.c perf list: Fix the --no-desc option 2024-05-28 11:29:49 -07:00
builtin-lock.c perf lock info: Display both map and thread by default 2024-06-03 22:01:00 -07:00
builtin-mem.c perf dso: Add reference count checking and accessor functions 2024-05-06 15:28:49 -03:00
builtin-probe.c perf probe: Use zfree() to avoid possibly accessing dangling pointers 2024-05-07 12:44:02 -03:00
builtin-record.c perf record: Ensure space for lost samples 2024-06-13 20:45:31 -07:00
builtin-report.c perf hist: Add symbol_conf.skip_empty 2024-06-15 21:04:04 -07:00
builtin-sched.c perf: sched map skips redundant lines with cpu filters 2024-06-15 21:03:50 -07:00
builtin-script.c perf mem-info: Add reference count checking 2024-05-07 18:06:44 -03:00
builtin-stat.c perf evsel: Refactor tool events 2024-06-10 16:45:10 -07:00
builtin-timechart.c perf addr_location: Add init/exit/copy functions 2023-06-12 15:57:53 -03:00
builtin-top.c perf top: Allow filters on events 2024-05-30 10:05:57 -07:00
builtin-trace.c perf trace beauty: Always show mmap prot even though PROT_NONE 2024-05-29 22:48:23 -07:00
builtin-version.c perf version: Display availability of OpenCSD support 2024-03-03 22:48:40 -08:00
builtin.h perf tools: Suggest inbuilt commands for unknown command 2024-03-21 13:54:40 -03:00
check-headers.sh tools headers: Synchronize linux/bits.h with the kernel sources 2024-04-26 22:13:10 -03:00
command-list.txt
CREDITS
design.txt
Makefile
Makefile.config perf build: Pretend scandirat is missing with msan 2024-04-26 22:13:10 -03:00
Makefile.perf perf beauty: Move uapi/linux/vhost.h copy out of the directory used to build perf 2024-03-21 20:44:35 -03:00
MANIFEST tools perf: Add arm64 sysreg files to MANIFEST 2023-11-22 11:17:53 -08:00
perf-archive.sh perf build: Add shellcheck to tools/perf scripts 2024-04-12 17:54:02 -03:00
perf-completion.sh perf build: Add shellcheck to tools/perf scripts 2024-04-12 17:54:02 -03:00
perf-iostat.sh
perf-read-vdso.c
perf-sys.h
perf.c perf tools: Suggest inbuilt commands for unknown command 2024-03-21 13:54:40 -03:00
perf.h