]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
perf/x86/uncore: Retrieve the unit ID from the unit control RB tree
authorKan Liang <kan.liang@linux.intel.com>
Fri, 14 Jun 2024 13:46:26 +0000 (06:46 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 17 Jun 2024 15:57:56 +0000 (17:57 +0200)
The box_ids only save the unit ID for the first die. If a unit, e.g., a
CXL unit, doesn't exist in the first die. The unit ID cannot be
retrieved.

The unit control RB tree also stores the unit ID information.
Retrieve the unit ID from the unit control RB tree

Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Yunying Sun <yunying.sun@intel.com>
Link: https://lore.kernel.org/r/20240614134631.1092359-4-kan.liang@linux.intel.com
arch/x86/events/intel/uncore.c

index f699606cf5fcd45971bba745ab8b7bb38f953b3b..08e85dbabd49bb046e16fbf74d5cd73f5b814c1a 100644 (file)
@@ -862,6 +862,9 @@ static const struct attribute_group uncore_pmu_attr_group = {
 static inline int uncore_get_box_id(struct intel_uncore_type *type,
                                    struct intel_uncore_pmu *pmu)
 {
+       if (type->boxes)
+               return intel_uncore_find_discovery_unit_id(type->boxes, -1, pmu->pmu_idx);
+
        return type->box_ids ? type->box_ids[pmu->pmu_idx] : pmu->pmu_idx;
 }