mirror of
https://github.com/torvalds/linux.git
synced 2026-10-23 15:32:04 +02:00
perf/x86/intel/uncore: Fix DMR CXL CM invert filter
The DMR CXL CM PMU places its invert filter at config bit 21 and its
9-bit threshold at bits 23-31. However, dmr_uncore_cxlcm uses
GENERIC_PMON_RAW_EVENT_MASK, which covers the threshold through the
generic bit 23 invert field and bits 24-31 threshold field, but does not
include the relocated invert bit. As a result, uncore_pmu_event_init()
silently clears bit 21 and inv=1 programs the same configuration as
inv=0.
Add bit 21 to a DMR CXL CM-specific event mask so the requested invert
filter reaches hardware.
Fixes: 6daf2c35b8 ("perf/x86/intel/uncore: Add IMH PMON support for Diamond Rapids")
Signed-off-by: Guixiong Wei <weiguixiong@bytedance.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Zide Chen <zide.chen@intel.com>
Link: https://patch.msgid.link/20261008051953.6293-2-weiguixiong@bytedance.com
This commit is contained in:
parent
24a19b953e
commit
cf1f186e08
|
|
@ -474,6 +474,9 @@
|
|||
/* DMR */
|
||||
#define DMR_IMH1_HIOP_MMIO_BASE 0x1ffff6ae7000
|
||||
#define DMR_HIOP_MMIO_SIZE 0x8000
|
||||
#define DMR_CXLCM_PMON_CTL_INVERT BIT(21)
|
||||
#define DMR_CXLCM_PMON_RAW_EVENT_MASK (GENERIC_PMON_RAW_EVENT_MASK | \
|
||||
DMR_CXLCM_PMON_CTL_INVERT)
|
||||
#define DMR_CXLCM_EVENT_MASK_EXT 0xf
|
||||
#define DMR_HAMVF_EVENT_MASK_EXT 0xffffffff
|
||||
#define DMR_PCIE4_EVENT_MASK_EXT 0xffffff
|
||||
|
|
@ -6696,7 +6699,7 @@ static struct event_constraint dmr_uncore_cxlcm_constraints[] = {
|
|||
|
||||
static struct intel_uncore_type dmr_uncore_cxlcm = {
|
||||
.name = "cxlcm",
|
||||
.event_mask = GENERIC_PMON_RAW_EVENT_MASK,
|
||||
.event_mask = DMR_CXLCM_PMON_RAW_EVENT_MASK,
|
||||
.event_mask_ext = DMR_CXLCM_EVENT_MASK_EXT,
|
||||
.constraints = dmr_uncore_cxlcm_constraints,
|
||||
.format_group = &dmr_cxlcm_uncore_format_group,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user