Newer AMD CPUs (Zen5+) have the ERAPS feature bit that allows us to remove the
RSB filling loops required during context switches and VM exits.
This patchset implements the feature to:
* remove the need for RSB filling on context switches and VMEXITs in host and
guests
* allow KVM guests to use the full default RSB stack
The feature isn't yet part of an APM update that details its working, so this
is still tagged as RFC.
The v1 posting resulted in some questions on patch 1 -- I've included the
context and comments in the commit text for patch 1 in this posting.
v2:
* reword comments to highlight context switch as the main trigger for RSB
flushes in hardware (Dave Hansen)
* Split out outdated comment updates in (v1) patch1 to be a standalone
patch1 in this series, to reinforce RSB filling is only required for RSB
poisoning cases for AMD
* Remove mentions of BTC/BTC_NO (Andrew Cooper)
* Add braces in case stmt (kernel test robot)
* s/boot_cpu_has/cpu_feature_enabled (Boris Petkov)
Amit Shah (3):
x86: cpu/bugs: update SpectreRSB comments for AMD
x86: cpu/bugs: add support for AMD ERAPS feature
x86: kvm: svm: add support for ERAPS and FLUSH_RAP_ON_VMRUN
Documentation/admin-guide/hw-vuln/spectre.rst | 5 ++-
arch/x86/include/asm/cpufeatures.h | 1 +
arch/x86/include/asm/nospec-branch.h | 12 +++++
arch/x86/include/asm/svm.h | 6 ++-
arch/x86/kernel/cpu/bugs.c | 34 ++++++++------
arch/x86/kvm/cpuid.c | 18 +++++++-
arch/x86/kvm/svm/svm.c | 44 +++++++++++++++++++
arch/x86/kvm/svm/svm.h | 15 +++++++
8 files changed, 117 insertions(+), 18 deletions(-)
--
2.47.0