From: Amit Shah <amit@kernel.org>
To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
x86@kernel.org, linux-doc@vger.kernel.org
Cc: amit.shah@amd.com, thomas.lendacky@amd.com, bp@alien8.de,
tglx@linutronix.de, peterz@infradead.org, jpoimboe@kernel.org,
pawan.kumar.gupta@linux.intel.com, corbet@lwn.net,
mingo@redhat.com, dave.hansen@linux.intel.com, hpa@zytor.com,
seanjc@google.com, pbonzini@redhat.com,
daniel.sneddon@linux.intel.com, kai.huang@intel.com,
sandipan.das@amd.com, boris.ostrovsky@oracle.com,
Babu.Moger@amd.com, david.kaplan@amd.com, dwmw@amazon.co.uk,
andrew.cooper3@citrix.com, Amit Shah <amit@kernel.org>
Subject: [PATCH v5 0/1] KVM: Add support for the ERAPS feature
Date: Thu, 15 May 2025 17:26:20 +0200 [thread overview]
Message-ID: <20250515152621.50648-1-amit@kernel.org> (raw)
Zen5+ AMD CPUs have a larger RSB (64 entries on Zen5), and use all of it in
the host context. The hypervisor needs to set up a couple things before it's
exposed to guests. This patch adds the support to enable guests to drop their
software mitigations in favour of the hardware one.
The feature isn't yet part of an APM update that details its working, and
previous versions of the patch were RFC for that reason. I'm now dropping the
RFC tag, because these patches have been out for a while, and I also have this
writeup:
https://amitshah.net/2024/11/eraps-reduces-software-tax-for-hardware-bugs/
which may be more detailsl than what will eventually appear in the APM anyway.
v5:
* Drop RFC tag
* Add separate VMCB01/VMCB02 handling to ensure both L1 and L2 guests are not
affected by each other's RSB entries
* Rename vmcb_flush_guest_rap() back to vmcb_set_flush_guest_rap(). The
previous name did not feel right because the call to the function only sets
a bit in the VMCB which the CPU acts on much later (at VMRUN).
v4:
* Address Sean's comments from v3
* remove a bunch of comments in favour of a better commit message
* Drop patch 1 from the series - Josh's patches handle the most common case,
and the AutoIBRS-disabled case can be tackled later if required after Josh's
patches have been merged upstream.
v3:
* rebase on top of Josh's RSB tweaks series
* with that rebase, only the non-AutoIBRS case needs special ERAPS support.
AutoIBRS is currently disabled when SEV-SNP is active (commit acaa4b5c4c8)
* remove comment about RSB_CLEAR_LOOPS and the size of the RSB -- it's not
necessary anymore with the rework
* remove comment from patch 2 in svm.c in favour of the commit message
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 (1):
x86: kvm: svm: set up ERAPS support for guests
arch/x86/include/asm/cpufeatures.h | 1 +
arch/x86/include/asm/svm.h | 6 +++++-
arch/x86/kvm/cpuid.c | 10 +++++++++-
arch/x86/kvm/svm/svm.c | 14 ++++++++++++++
arch/x86/kvm/svm/svm.h | 20 ++++++++++++++++++++
5 files changed, 49 insertions(+), 2 deletions(-)
--
2.49.0
next reply other threads:[~2025-05-15 15:27 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-15 15:26 Amit Shah [this message]
2025-05-15 15:26 ` [PATCH v5 1/1] x86: kvm: svm: set up ERAPS support for guests Amit Shah
2025-05-19 21:22 ` Tom Lendacky
2025-05-28 12:49 ` Amit Shah
2025-08-20 16:18 ` Sean Christopherson
2025-08-21 9:05 ` Amit Shah
2025-08-20 17:10 ` Sean Christopherson
2025-08-27 9:17 ` Amit Shah
2025-08-28 9:40 ` Amit Shah
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=20250515152621.50648-1-amit@kernel.org \
--to=amit@kernel.org \
--cc=Babu.Moger@amd.com \
--cc=amit.shah@amd.com \
--cc=andrew.cooper3@citrix.com \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=daniel.sneddon@linux.intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=david.kaplan@amd.com \
--cc=dwmw@amazon.co.uk \
--cc=hpa@zytor.com \
--cc=jpoimboe@kernel.org \
--cc=kai.huang@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pawan.kumar.gupta@linux.intel.com \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=sandipan.das@amd.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).