]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
x86/resctrl: Add missing resctrl initialization for Hygon
authorXiaochen Shen <shenxiaochen@open-hieco.net>
Tue, 9 Dec 2025 06:26:49 +0000 (14:26 +0800)
committerBorislav Petkov (AMD) <bp@alien8.de>
Tue, 13 Jan 2026 15:20:01 +0000 (16:20 +0100)
Hygon CPUs supporting Platform QoS features currently undergo partial resctrl
initialization through resctrl_cpu_detect() in the Hygon BSP init helper and
AMD/Hygon common initialization code. However, several critical data
structures remain uninitialized for Hygon CPUs in the following paths:

 - get_mem_config()-> __rdt_get_mem_config_amd():
     rdt_resource::membw,alloc_capable
     hw_res::num_closid

 - rdt_init_res_defs()->rdt_init_res_defs_amd():
     rdt_resource::cache
     hw_res::msr_base,msr_update

Add the missing AMD/Hygon common initialization to ensure proper Platform QoS
functionality on Hygon CPUs.

Fixes: d8df126349da ("x86/cpu/hygon: Add missing resctrl_cpu_detect() in bsp_init helper")
Signed-off-by: Xiaochen Shen <shenxiaochen@open-hieco.net>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20251209062650.1536952-2-shenxiaochen@open-hieco.net
arch/x86/kernel/cpu/resctrl/core.c

index 3792ab4819dc62e10e46aaf9cbcfb4e397093976..10de1594d328f86749d7cb27b1bf7b6c0dc877a9 100644 (file)
@@ -825,7 +825,8 @@ static __init bool get_mem_config(void)
 
        if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)
                return __get_mem_config_intel(&hw_res->r_resctrl);
-       else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
+       else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
+                boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
                return __rdt_get_mem_config_amd(&hw_res->r_resctrl);
 
        return false;
@@ -987,7 +988,8 @@ static __init void rdt_init_res_defs(void)
 {
        if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)
                rdt_init_res_defs_intel();
-       else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
+       else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
+                boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
                rdt_init_res_defs_amd();
 }