[PATCH 1/6] perf/x86/intel/uncore: Fix discovery unit lookup for multi-die systems
From: Zide Chen
Date: Mon May 11 2026 - 19:14:30 EST
In uncore_find_add_unit(), PMON units with the same unit ID may be
added to the uncore discovery RB tree for different dies. These units
are distinguished by node->die.
However, intel_generic_uncore_box_ctl() uses fixes die ID -1 when
looking up the discovery unit, which may retrieve the wrong node on
multi-die systems.
Use box->dieid instead so the correct discovery unit is selected.
No functional issue has been observed so far because currently supported
platforms happen to use the same unit control register for such units.
Fixes: b1d9ea2e1ca4 ("perf/x86/uncore: Apply the unit control RB tree to MSR uncore units")
Signed-off-by: Zide Chen <zide.chen@xxxxxxxxx>
---
arch/x86/events/intel/uncore_discovery.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/events/intel/uncore_discovery.c b/arch/x86/events/intel/uncore_discovery.c
index 583cbd06b9b8..1d22d7c00ee0 100644
--- a/arch/x86/events/intel/uncore_discovery.c
+++ b/arch/x86/events/intel/uncore_discovery.c
@@ -481,7 +481,7 @@ static u64 intel_generic_uncore_box_ctl(struct intel_uncore_box *box)
struct intel_uncore_discovery_unit *unit;
unit = intel_uncore_find_discovery_unit(box->pmu->type->boxes,
- -1, box->pmu->pmu_idx);
+ box->dieid, box->pmu->pmu_idx);
if (WARN_ON_ONCE(!unit))
return 0;
--
2.54.0