Files
linux/tools/perf/util
Kan Liang 7d049cd134 perf stat: Fix the hard-coded metrics calculation on the hybrid
commit 3612ca8e2935c4c142d99e33b8effa7045ce32b5 upstream.

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
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-03 08:54:27 +02:00
..
2022-01-12 17:01:38 -08:00
2022-06-28 12:05:25 -03:00
2023-03-14 08:29:46 -03:00
2022-10-04 08:55:21 -03:00
2023-05-27 09:38:25 -03:00
2023-05-27 09:38:25 -03:00
2023-06-12 18:18:13 -03:00
2021-04-29 10:30:58 -03:00
2021-08-11 09:35:44 -03:00
2023-06-23 21:47:20 -07:00
2023-06-23 21:47:20 -07:00
2024-06-12 11:12:15 +02:00
2023-07-01 17:57:43 -07:00
2023-01-23 10:00:47 -03:00
2023-03-20 19:28:21 -03:00
2021-02-03 13:10:44 -03:00
2023-06-12 15:57:54 -03:00
2023-06-23 21:47:20 -07:00
2023-06-23 21:47:20 -07:00
2023-04-06 21:40:28 -03:00
2022-12-14 15:28:18 -03:00
2023-03-20 19:28:21 -03:00
2020-10-14 13:34:26 -03:00
2022-06-23 11:54:22 -03:00
2023-04-10 19:20:53 -03:00
2023-04-10 19:21:31 -03:00