]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
perf/x86/intel: Filter unsupported Topdown metrics event
authorKan Liang <kan.liang@linux.intel.com>
Thu, 28 Jan 2021 22:40:09 +0000 (14:40 -0800)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 1 Feb 2021 14:31:36 +0000 (15:31 +0100)
commit1ab5f235c176e93adc4f75000aae6c50fea9db00
treefff4b2839d7d1b30d3f577a2e1d94b2873ddcba9
parent628d923a3c464db98c1c98bb1e0cd50804caf681
perf/x86/intel: Filter unsupported Topdown metrics event

Intel Sapphire Rapids server will introduce 8 metrics events. Intel
Ice Lake only supports 4 metrics events. A perf tool user may mistakenly
use the unsupported events via RAW format on Ice Lake. The user can
still get a value from the unsupported Topdown metrics event once the
following Sapphire Rapids enabling patch is applied.

To enable the 8 metrics events on Intel Sapphire Rapids, the
INTEL_TD_METRIC_MAX has to be updated, which impacts the
is_metric_event(). The is_metric_event() is a generic function.
On Ice Lake, the newly added SPR metrics events will be mistakenly
accepted as metric events on creation. At runtime, the unsupported
Topdown metrics events will be updated.

Add a variable num_topdown_events in x86_pmu to indicate the available
number of the Topdown metrics event on the platform. Apply the number
into is_metric_event(). Only the supported Topdown metrics events
should be created as metrics events.

Apply the num_topdown_events in icl_update_topdown_event() as well. The
function can be reused by the following patch.

Suggested-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/1611873611-156687-4-git-send-email-kan.liang@linux.intel.com
arch/x86/events/intel/core.c
arch/x86/events/perf_event.h
arch/x86/include/asm/perf_event.h