Kexec Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] x86/bugs: Explicitly clear IBRS MSR bit
@ 2022-11-18 18:21 Breno Leitao
  2022-11-18 19:46 ` Pawan Gupta
  0 siblings, 1 reply; 5+ messages in thread
From: Breno Leitao @ 2022-11-18 18:21 UTC (permalink / raw)
  To: tglx, mingo, bp, dave.hansen, hpa, jpoimboe, peterz
  Cc: x86, cascardo, leit, kexec

Currently x86_spec_ctrl_base is read at boot time, and SPEC_CTRL_IBRS
bit is set if CONFIG_CPU_IBRS_ENTRY is enabled. There is no change in
the bit if CONFIG_CPU_IBRS_ENTRY is not set.

This is a problem when kexec-ing a kernel that has the mitigation
disabled, from a kernel that has the mitigation enabled. In this case,
the MSR bit is carried forward and not cleared at the boot of the new
kernel. This might have some performance degradation that is hard to
find.

This problem does not happen if the machine is (hard) rebooted, because
the bit will be cleared by default.

Signed-off-by: Breno Leitao <leitao@debian.org>
---
 arch/x86/kernel/cpu/bugs.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
index 3e3230cccaa7..5b59e850de6e 100644
--- a/arch/x86/kernel/cpu/bugs.c
+++ b/arch/x86/kernel/cpu/bugs.c
@@ -1451,6 +1451,9 @@ static void __init spectre_v2_select_mitigation(void)
 	if (spectre_v2_in_ibrs_mode(mode)) {
 		x86_spec_ctrl_base |= SPEC_CTRL_IBRS;
 		write_spec_ctrl_current(x86_spec_ctrl_base, true);
+	} else {
+		x86_spec_ctrl_base = x86_spec_ctrl_base & (~SPEC_CTRL_IBRS);
+		write_spec_ctrl_current(x86_spec_ctrl_base, true);
 	}
 
 	switch (mode) {
-- 
2.30.2


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-11-22 17:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-18 18:21 [RFC PATCH] x86/bugs: Explicitly clear IBRS MSR bit Breno Leitao
2022-11-18 19:46 ` Pawan Gupta
2022-11-20 12:02   ` [PATCH] x86/bugs: Explicitly clear speculative MSR bits Breno Leitao
2022-11-21 22:20     ` Pawan Gupta
2022-11-22 15:55       ` Breno Leitao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox