]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Jan 2026 10:21:29 +0000 (11:21 +0100)
commit 6ee98aabdc700b5705e4f1833e2edc82a826b53b upstream.

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
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kernel/cpu/resctrl/core.c

index 06ca5a30140c2f6d2c8d0b7324df9c0c6ecab13b..c0dfbb31394efdf31289f16efcf08ea3db85a507 100644 (file)
@@ -818,7 +818,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;
@@ -978,7 +979,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();
 }