[RFC PATCH v2 06/11] x86/resctrl: Pass the CPUID leaf to rdt_get_cache_alloc_cfg()

From: Tony Luck

Date: Tue Nov 03 2026 - 16:30:09 EST


Symmetric and asymmetric cache allocation parameters use the same CPUID
subleaf format but different leaves.

Pass the leaf number to rdt_get_cache_alloc_cfg() so callers can select the
enumeration leaf. This prepares the helper for asymmetric allocation without
changing current behavior.

Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx>
---
arch/x86/kernel/cpu/resctrl/core.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
index 6df8e3c03289..7981ddbde8c9 100644
--- a/arch/x86/kernel/cpu/resctrl/core.c
+++ b/arch/x86/kernel/cpu/resctrl/core.c
@@ -348,7 +348,7 @@ static __init bool __rdt_get_mem_config_amd(struct rdt_resource *r)
return true;
}

-static struct resctrl_ctrl *rdt_get_cache_alloc_cfg(int idx, struct rdt_resource *r)
+static struct resctrl_ctrl *rdt_get_cache_alloc_cfg(int leaf, int idx, struct rdt_resource *r)
{
struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
struct resctrl_hw_ctrl *hw_ctrl;
@@ -357,7 +357,7 @@ static struct resctrl_ctrl *rdt_get_cache_alloc_cfg(int idx, struct rdt_resource
union cpuid_0x10_x_edx edx;
u32 ebx, default_ctrl;

- cpuid_count(CPUID_LEAF_RDT_A, idx, &eax.full, &ebx, &ecx.full, &edx.full);
+ cpuid_count(leaf, idx, &eax.full, &ebx, &ecx.full, &edx.full);
hw_res->num_closid = edx.split.cos_max + 1;
hw_ctrl = kzalloc_obj(*hw_ctrl);
if (!hw_ctrl)
@@ -1065,7 +1065,7 @@ static __init bool get_rdt_alloc_resources(void)

if (rdt_cpu_has(X86_FEATURE_CAT_L3)) {
r = &rdt_resources_all[RDT_RESOURCE_L3].r_resctrl;
- ctrl = rdt_get_cache_alloc_cfg(1, r);
+ ctrl = rdt_get_cache_alloc_cfg(CPUID_LEAF_RDT_A, 1, r);
if (ctrl) {
if (rdt_cpu_has(X86_FEATURE_CDP_L3))
rdt_get_cdp_l3_config();
@@ -1079,7 +1079,7 @@ static __init bool get_rdt_alloc_resources(void)
if (rdt_cpu_has(X86_FEATURE_CAT_L2)) {
/* CPUID 0x10.2 fields are same format as 0x10.1 */
r = &rdt_resources_all[RDT_RESOURCE_L2].r_resctrl;
- ctrl = rdt_get_cache_alloc_cfg(2, r);
+ ctrl = rdt_get_cache_alloc_cfg(CPUID_LEAF_RDT_A, 2, r);
if (ctrl) {
if (rdt_cpu_has(X86_FEATURE_CDP_L2))
rdt_get_cdp_l2_config();
--
2.56.0