[PATCH v3 0/8] x86, KVM: Optimize SEV cache flushing
Sean Christopherson
seanjc at google.com
Thu May 22 23:37:24 UTC 2025
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
More information about the dri-devel
mailing list