Zhengjun Xing 71c86cda75 perf parse-events: Remove "not supported" hybrid cache events
By default, we create two hybrid cache events, one is for cpu_core, and
another is for cpu_atom. But Some hybrid hardware cache events are only
available on one CPU PMU. For example, the 'L1-dcache-load-misses' is only
available on cpu_core, while the 'L1-icache-loads' is only available on
cpu_atom. We need to remove "not supported" hybrid cache events. By
extending is_event_supported() to global API and using it to check if the
hybrid cache events are supported before being created, we can remove the
"not supported" hybrid cache events.

Before:

 # ./perf stat -e L1-dcache-load-misses,L1-icache-loads -a sleep 1

 Performance counter stats for 'system wide':

            52,570      cpu_core/L1-dcache-load-misses/
   <not supported>      cpu_atom/L1-dcache-load-misses/
   <not supported>      cpu_core/L1-icache-loads/
         1,471,817      cpu_atom/L1-icache-loads/

       1.004915229 seconds time elapsed

After:

 # ./perf stat -e L1-dcache-load-misses,L1-icache-loads -a sleep 1

 Performance counter stats for 'system wide':

            54,510      cpu_core/L1-dcache-load-misses/
         1,441,286      cpu_atom/L1-icache-loads/

       1.005114281 seconds time elapsed

Fixes: 30def61f64bac5f5 ("perf parse-events: Create two hybrid cache events")
Reported-by: Yi Ammy <ammy.yi@intel.com>
Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Xing Zhengjun <zhengjun.xing@linux.intel.com>
Acked-by: Ian Rogers <irogers@google.com>
Cc: Alexander Shishkin <alexander.shishkin@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jin Yao <yao.jin@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220923030013.3726410-2-zhengjun.xing@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2022-09-26 10:16:26 -03:00
..
2022-01-12 17:01:38 -08:00
2019-02-19 16:11:56 -03:00
2022-06-28 12:05:25 -03:00
2021-09-03 08:15:10 -03:00
2021-04-29 10:30:58 -03:00
2021-08-11 09:35:44 -03:00
2022-06-23 11:54:22 -03:00
2022-07-29 13:41:19 -03:00
2021-11-07 12:27:38 -03:00
2021-02-03 13:10:44 -03:00
2022-07-26 16:31:54 -03:00
2021-07-15 17:30:22 -03:00
2022-02-14 16:56:32 -03:00
2022-08-13 15:02:08 -03:00
2022-08-13 15:02:08 -03:00
2021-11-07 12:27:38 -03:00
2019-01-25 15:12:09 +01:00
2022-08-10 10:43:29 -03:00
2022-08-10 10:43:29 -03:00
2020-10-14 13:34:26 -03:00
2021-02-17 15:15:06 -03:00
2021-02-17 15:15:06 -03:00
2022-06-23 11:54:22 -03:00
2022-02-15 17:15:29 -03:00