From: Borislav Petkov <bp@alien8.de>
To: X86 ML <x86@kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: [PATCH] x86/CPU/AMD: Rename the spectral chicken
Date: Tue, 25 Apr 2023 21:50:24 +0200 [thread overview]
Message-ID: <20230425195024.17808-1-bp@alien8.de> (raw)
From: "Borislav Petkov (AMD)" <bp@alien8.de>
We've had enough fun with the spectral chicken bit - name it what it
really does: it suppresses non-branch predictions.
Rename defines to make it clear that it is Zen2 only.
No functional changes.
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
---
arch/x86/include/asm/msr-index.h | 6 ++++--
arch/x86/kernel/cpu/amd.c | 22 +++++++++++-----------
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index ad35355ee43e..0094e6a1b553 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -625,8 +625,10 @@
/* Fam 17h MSRs */
#define MSR_F17H_IRPERF 0xc00000e9
-#define MSR_ZEN2_SPECTRAL_CHICKEN 0xc00110e3
-#define MSR_ZEN2_SPECTRAL_CHICKEN_BIT BIT_ULL(1)
+/* Fam 17h, Zen2 MSRs */
+#define MSR_ZEN2_DE_CFG2 0xc00110e3
+#define MSR_ZEN2_DE_CFG2_SUPPRESS_NOBR_PRED_BIT 1
+#define MSR_ZEN2_DE_CFG2_SUPPRESS_NOBR_PRED BIT(MSR_ZEN2_DE_CFG2_SUPPRESS_NOBR_PRED_BIT)
/* Fam 16h MSRs */
#define MSR_F16H_L2I_PERF_CTL 0xc0010230
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 571abf808ea3..70a41088e900 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -860,23 +860,23 @@ static void init_amd_bd(struct cpuinfo_x86 *c)
clear_rdrand_cpuid_bit(c);
}
-void init_spectral_chicken(struct cpuinfo_x86 *c)
+void init_amd_zn2(struct cpuinfo_x86 *c)
{
#ifdef CONFIG_CPU_UNRET_ENTRY
u64 value;
/*
- * On Zen2 we offer this chicken (bit) on the altar of Speculation.
+ * Suppress speculation from the middle of a basic block, i.e.
+ * non-branch predictions.
*
- * This suppresses speculation from the middle of a basic block, i.e. it
- * suppresses non-branch predictions.
- *
- * We use STIBP as a heuristic to filter out Zen2 from the rest of F17H
+ * STIBP is used as a heuristic to filter out Zen2 from the rest
+ * of family 0x17.
*/
- if (!cpu_has(c, X86_FEATURE_HYPERVISOR) && cpu_has(c, X86_FEATURE_AMD_STIBP)) {
- if (!rdmsrl_safe(MSR_ZEN2_SPECTRAL_CHICKEN, &value)) {
- value |= MSR_ZEN2_SPECTRAL_CHICKEN_BIT;
- wrmsrl_safe(MSR_ZEN2_SPECTRAL_CHICKEN, value);
+ if (!cpu_has(c, X86_FEATURE_HYPERVISOR) &&
+ cpu_has(c, X86_FEATURE_AMD_STIBP)) {
+ if (!rdmsrl_safe(MSR_ZEN2_DE_CFG2, &value)) {
+ value |= MSR_ZEN2_DE_CFG2_SUPPRESS_NOBR_PRED;
+ wrmsrl_safe(MSR_ZEN2_DE_CFG2, value);
}
}
#endif
@@ -949,7 +949,7 @@ static void init_amd(struct cpuinfo_x86 *c)
case 0x12: init_amd_ln(c); break;
case 0x15: init_amd_bd(c); break;
case 0x16: init_amd_jg(c); break;
- case 0x17: init_spectral_chicken(c);
+ case 0x17: init_amd_zn2(c);
fallthrough;
case 0x19: init_amd_zn(c); break;
}
--
2.35.1
next reply other threads:[~2023-04-25 19:50 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-25 19:50 Borislav Petkov [this message]
2023-04-25 20:59 ` [PATCH] x86/CPU/AMD: Rename the spectral chicken Peter Zijlstra
2023-04-25 21:15 ` Borislav Petkov
2023-04-26 9:14 ` Thomas Gleixner
2023-04-26 9:21 ` Borislav Petkov
2023-04-26 14:54 ` Andrew Cooper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230425195024.17808-1-bp@alien8.de \
--to=bp@alien8.de \
--cc=linux-kernel@vger.kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.