arch/x86/include/asm/smp.h | 23 +++++++- arch/x86/include/asm/special_insns.h | 32 ++++++++++- arch/x86/kvm/svm/sev.c | 85 +++++++++++++++++++--------- arch/x86/kvm/svm/svm.h | 1 + arch/x86/kvm/x86.c | 11 +--- arch/x86/lib/cache-smp.c | 26 ++++++++- drivers/gpu/drm/drm_cache.c | 9 +-- 7 files changed, 140 insertions(+), 47 deletions(-)
This is the combination of Kevin's WBNOINVD series[1] with Zheyun's targeted flushing series[2]. The combined goal is to use WBNOINVD instead of WBINVD when doing cached maintenance to prevent data corruption due to C-bit aliasing, and to reduce the number of cache invalidations by only performing flushes on CPUs that have entered the relevant VM since the last cache flush. All of the non-KVM patches are frontloaded and based on v6.15-rc7, so that they can go through the tip tree (in a stable branch, please :-) ). v3: - Move the non-KVM patches to the front. [Ingo] - Add comments to document WBINVD vs. WBNOINVD. [Ingo] - Collect acks/reviews. [Ingo, Tom] - Rename xx_wbinvd_on_many_cpus() to xx_on_cpus_mask(). [Ingo] - Fix a repeated "be" in a comment. [Francesco] v2: - https://lore.kernel.org/all/20250516212833.2544737-1-seanjc@google.com - Add a missing -ENOMEM in __sev_guest_init(). [Tom] - Collect reviews. [Kai, Tom] - Fix stub prototypes. [Zheyun] - Kill off dead pr_err() code on DRM's wbinvd_on_all_cpus() usage. v1: https://lore.kernel.org/all/20250227014858.3244505-1-seanjc@google.com [1] https://lore.kernel.org/all/20250201000259.3289143-1-kevinloughlin@google.com [2] https://lore.kernel.org/all/20250128015345.7929-1-szy0127@sjtu.edu.cn Kevin Loughlin (2): x86, lib: Add WBNOINVD helper functions KVM: SEV: Prefer WBNOINVD over WBINVD for cache maintenance efficiency Sean Christopherson (3): drm/gpu: Remove dead checks on wbinvd_on_all_cpus()'s return value x86, lib: Drop the unused return value from wbinvd_on_all_cpus() KVM: x86: Use wbinvd_on_cpu() instead of an open-coded equivalent Zheyun Shen (3): x86, lib: Add wbinvd and wbnoinvd helpers to target multiple CPUs KVM: SVM: Remove wbinvd in sev_vm_destroy() KVM: SVM: Flush cache only on CPUs running SEV guest arch/x86/include/asm/smp.h | 23 +++++++- arch/x86/include/asm/special_insns.h | 32 ++++++++++- arch/x86/kvm/svm/sev.c | 85 +++++++++++++++++++--------- arch/x86/kvm/svm/svm.h | 1 + arch/x86/kvm/x86.c | 11 +--- arch/x86/lib/cache-smp.c | 26 ++++++++- drivers/gpu/drm/drm_cache.c | 9 +-- 7 files changed, 140 insertions(+), 47 deletions(-) base-commit: a5806cd506af5a7c19bcd596e4708b5c464bfd21 -- 2.49.0.1151.ga128411c76-goog
On Thu, 22 May 2025 16:37:24 -0700, Sean Christopherson wrote:
> This is the combination of Kevin's WBNOINVD series[1] with Zheyun's targeted
> flushing series[2]. The combined goal is to use WBNOINVD instead of WBINVD
> when doing cached maintenance to prevent data corruption due to C-bit aliasing,
> and to reduce the number of cache invalidations by only performing flushes on
> CPUs that have entered the relevant VM since the last cache flush.
>
> All of the non-KVM patches are frontloaded and based on v6.15-rc7, so that
> they can go through the tip tree (in a stable branch, please :-) ).
>
> [...]
Applied 5-8 to kvm-x86 sev (which is built on tip/x86_core_for_kvm).
[5/8] KVM: x86: Use wbinvd_on_cpu() instead of an open-coded equivalent
https://github.com/kvm-x86/linux/commit/55aed8c2dbc4
[6/8] KVM: SVM: Remove wbinvd in sev_vm_destroy()
https://github.com/kvm-x86/linux/commit/7e00013bd339
[7/8] KVM: SEV: Prefer WBNOINVD over WBINVD for cache maintenance efficiency
https://github.com/kvm-x86/linux/commit/a77896eea33d
[8/8] KVM: SVM: Flush cache only on CPUs running SEV guest
https://github.com/kvm-x86/linux/commit/d6581b6f2e26
--
https://github.com/kvm-x86/linux/tree/next
On Thu, May 22, 2025, Sean Christopherson wrote: > This is the combination of Kevin's WBNOINVD series[1] with Zheyun's targeted > flushing series[2]. The combined goal is to use WBNOINVD instead of WBINVD > when doing cached maintenance to prevent data corruption due to C-bit aliasing, > and to reduce the number of cache invalidations by only performing flushes on > CPUs that have entered the relevant VM since the last cache flush. > > All of the non-KVM patches are frontloaded and based on v6.15-rc7, so that > they can go through the tip tree (in a stable branch, please :-) ). Tip tree folks, any feedback/thoughts on this series (patches 1-4 in particular)? It'd be nice to get this into 6.17, and I'd really like land it by 6.18 at the latest. > Kevin Loughlin (2): > x86, lib: Add WBNOINVD helper functions > KVM: SEV: Prefer WBNOINVD over WBINVD for cache maintenance efficiency > > Sean Christopherson (3): > drm/gpu: Remove dead checks on wbinvd_on_all_cpus()'s return value > x86, lib: Drop the unused return value from wbinvd_on_all_cpus() > KVM: x86: Use wbinvd_on_cpu() instead of an open-coded equivalent > > Zheyun Shen (3): > x86, lib: Add wbinvd and wbnoinvd helpers to target multiple CPUs > KVM: SVM: Remove wbinvd in sev_vm_destroy() > KVM: SVM: Flush cache only on CPUs running SEV guest > > arch/x86/include/asm/smp.h | 23 +++++++- > arch/x86/include/asm/special_insns.h | 32 ++++++++++- > arch/x86/kvm/svm/sev.c | 85 +++++++++++++++++++--------- > arch/x86/kvm/svm/svm.h | 1 + > arch/x86/kvm/x86.c | 11 +--- > arch/x86/lib/cache-smp.c | 26 ++++++++- > drivers/gpu/drm/drm_cache.c | 9 +-- > 7 files changed, 140 insertions(+), 47 deletions(-) > > > base-commit: a5806cd506af5a7c19bcd596e4708b5c464bfd21 > -- > 2.49.0.1151.ga128411c76-goog >
On Wed, Jul 09, 2025 at 09:25:35AM -0700, Sean Christopherson wrote:
> On Thu, May 22, 2025, Sean Christopherson wrote:
> > This is the combination of Kevin's WBNOINVD series[1] with Zheyun's targeted
> > flushing series[2]. The combined goal is to use WBNOINVD instead of WBINVD
> > when doing cached maintenance to prevent data corruption due to C-bit aliasing,
> > and to reduce the number of cache invalidations by only performing flushes on
> > CPUs that have entered the relevant VM since the last cache flush.
> >
> > All of the non-KVM patches are frontloaded and based on v6.15-rc7, so that
> > they can go through the tip tree (in a stable branch, please :-) ).
>
> Tip tree folks, any feedback/thoughts on this series (patches 1-4 in particular)?
> It'd be nice to get this into 6.17, and I'd really like land it by 6.18 at the
> latest.
I'll take a look tomorrow.
If I queue 1-4, would you like an immutable branch to merge for the other 4?
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
On Wed, Jul 09, 2025, Borislav Petkov wrote: > On Wed, Jul 09, 2025 at 09:25:35AM -0700, Sean Christopherson wrote: > > On Thu, May 22, 2025, Sean Christopherson wrote: > > > This is the combination of Kevin's WBNOINVD series[1] with Zheyun's targeted > > > flushing series[2]. The combined goal is to use WBNOINVD instead of WBINVD > > > when doing cached maintenance to prevent data corruption due to C-bit aliasing, > > > and to reduce the number of cache invalidations by only performing flushes on > > > CPUs that have entered the relevant VM since the last cache flush. > > > > > > All of the non-KVM patches are frontloaded and based on v6.15-rc7, so that > > > they can go through the tip tree (in a stable branch, please :-) ). > > > > Tip tree folks, any feedback/thoughts on this series (patches 1-4 in particular)? > > It'd be nice to get this into 6.17, and I'd really like land it by 6.18 at the > > latest. > > I'll take a look tomorrow. > > If I queue 1-4, would you like an immutable branch to merge for the other 4? Yes please, thanks!
© 2016 - 2025 Red Hat, Inc.