arch/x86/kernel/cpu/hygon.c | 3 +++ 1 file changed, 3 insertions(+)
Since upstream commit 923f3a2b48bdccb6a1d1f0dd48de03de7ad936d9
("x86/resctrl: Query LLC monitoring properties once during boot"),
resctrl_cpu_detect() has been moved from common cpu initialization
code to vendor-specific bsp init helper, while hygon didn't put
that call in their code.
This triggers div-zero fault during early booting stage on our
machines with X86_FEATURE_CQM* supported, where
get_rdt_mon_resources() tries to calculate mon_l3_config with
uninitialized boot_cpu_data.x86_cache_occ_scale.
Fix the missing resctrl_cpu_detect() in hygon bsp init helper.
Signed-off-by: Tianxiang Peng <txpeng@tencent.com>
Reviewed-by: Hui Li <caelli@tencent.com>
---
arch/x86/kernel/cpu/hygon.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/x86/kernel/cpu/hygon.c b/arch/x86/kernel/cpu/hygon.c
index 9f914bf80180..5f73bad0b9fd 100644
--- a/arch/x86/kernel/cpu/hygon.c
+++ b/arch/x86/kernel/cpu/hygon.c
@@ -16,6 +16,7 @@
#include <asm/page.h>
#include <linux/module.h>
#include <linux/init.h>
+#include <asm/resctrl.h>
#ifdef CONFIG_X86_64
# include <asm/set_memory.h>
@@ -271,6 +272,8 @@ static void bsp_init_hygon(struct cpuinfo_x86 *c)
x86_amd_ls_cfg_ssbd_mask = 1ULL << 10;
}
}
+
+ resctrl_cpu_detect(c);
}
static void early_init_hygon(struct cpuinfo_x86 *c)
--
2.43.5
On Mon, Jun 23, 2025 at 05:31:53PM +0800, Tianxiang Peng wrote: > Since upstream commit 923f3a2b48bdccb6a1d1f0dd48de03de7ad936d9 > ("x86/resctrl: Query LLC monitoring properties once during boot"), This commit is in 5.7. You notice the issue only now because you were on an old kernel before and moved to 5-something, which is >= 5.7? > resctrl_cpu_detect() has been moved from common cpu initialization > code to vendor-specific bsp init helper, while hygon didn't put > that call in their code. > > This triggers div-zero fault during early booting stage on our > machines with X86_FEATURE_CQM* supported, where > get_rdt_mon_resources() tries to calculate mon_l3_config with > uninitialized boot_cpu_data.x86_cache_occ_scale. > > Fix the missing resctrl_cpu_detect() in hygon bsp init helper. > > Signed-off-by: Tianxiang Peng <txpeng@tencent.com> Your From: is Tianxiang Peng <luminosity1999@gmail.com> and that will appear in git as author. Do you want it to be the email address you have in the Signed-off-by instead? I.e., your company. Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette
Thank you for your feedback, I'm sorry for the delayed response. On Mon, 23 Jun 2025 15:31:17 +0200, Borislav Petkov wrote: > > Since upstream commit 923f3a2b48bdccb6a1d1f0dd48de03de7ad936d9 > > ("x86/resctrl: Query LLC monitoring properties once during boot"), > > This commit is in 5.7. > > You notice the issue only now because you were on an old kernel before and > moved to 5-something, which is >= 5.7? The issue surfaced when we migrated our 5.15-based kernel to new Hygon machines supporting X86_FEATURE_CQM*. Our older Hygon hardware lacks this capability (manually verified). To confirm the behavior: - On new Hygon machines, both 5.15 and 6.15 kernels trigger the div-zero fault. - Applying the patch resolves the issue consistently. On Mon, 23 Jun 2025 15:31:17 +0200, Borislav Petkov wrote: > > resctrl_cpu_detect() has been moved from common cpu initialization > > code to vendor-specific bsp init helper, while hygon didn't put > > that call in their code. > > > > This triggers div-zero fault during early booting stage on our > > machines with X86_FEATURE_CQM* supported, where > > get_rdt_mon_resources() tries to calculate mon_l3_config with > > uninitialized boot_cpu_data.x86_cache_occ_scale. > > > > Fix the missing resctrl_cpu_detect() in hygon bsp init helper. > > > > Signed-off-by: Tianxiang Peng <txpeng@tencent.com> > > Your From: is Tianxiang Peng <luminosity1999@gmail.com> and that will appear > in git as author. > > Do you want it to be the email address you have in the Signed-off-by instead? > I.e., your company. Apologies for the gmail sender address, corporate network constraints require this workaround. For the git author, I'd appreciate using my company email(txpeng@tencent.com) instead. Regards, Tianxiang Peng
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: d8df126349dad855cdfedd6bbf315bad2e901c2f
Gitweb: https://git.kernel.org/tip/d8df126349dad855cdfedd6bbf315bad2e901c2f
Author: Tianxiang Peng <txpeng@tencent.com>
AuthorDate: Mon, 23 Jun 2025 17:31:53 +08:00
Committer: Borislav Petkov (AMD) <bp@alien8.de>
CommitterDate: Mon, 18 Aug 2025 12:09:26 +02:00
x86/cpu/hygon: Add missing resctrl_cpu_detect() in bsp_init helper
Since
923f3a2b48bd ("x86/resctrl: Query LLC monitoring properties once during boot")
resctrl_cpu_detect() has been moved from common CPU initialization code to
the vendor-specific BSP init helper, while Hygon didn't put that call in their
code.
This triggers a division by zero fault during early booting stage on our
machines with X86_FEATURE_CQM* supported, where get_rdt_mon_resources() tries
to calculate mon_l3_config with uninitialized boot_cpu_data.x86_cache_occ_scale.
Add the missing resctrl_cpu_detect() in the Hygon BSP init helper.
[ bp: Massage commit message. ]
Fixes: 923f3a2b48bd ("x86/resctrl: Query LLC monitoring properties once during boot")
Signed-off-by: Tianxiang Peng <txpeng@tencent.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Hui Li <caelli@tencent.com>
Cc: <stable@kernel.org>
Link: https://lore.kernel.org/20250623093153.3016937-1-txpeng@tencent.com
---
arch/x86/kernel/cpu/hygon.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/x86/kernel/cpu/hygon.c b/arch/x86/kernel/cpu/hygon.c
index 2154f12..1fda6c3 100644
--- a/arch/x86/kernel/cpu/hygon.c
+++ b/arch/x86/kernel/cpu/hygon.c
@@ -16,6 +16,7 @@
#include <asm/spec-ctrl.h>
#include <asm/delay.h>
#include <asm/msr.h>
+#include <asm/resctrl.h>
#include "cpu.h"
@@ -117,6 +118,8 @@ static void bsp_init_hygon(struct cpuinfo_x86 *c)
x86_amd_ls_cfg_ssbd_mask = 1ULL << 10;
}
}
+
+ resctrl_cpu_detect(c);
}
static void early_init_hygon(struct cpuinfo_x86 *c)
© 2016 - 2025 Red Hat, Inc.