linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/8] x86, KVM: Optimize SEV cache flushing
@ 2025-05-22 23:37 Sean Christopherson
  2025-05-22 23:37 ` [PATCH v3 1/8] drm/gpu: Remove dead checks on wbinvd_on_all_cpus()'s return value Sean Christopherson
                   ` (9 more replies)
  0 siblings, 10 replies; 27+ messages in thread
From: Sean Christopherson @ 2025-05-22 23:37 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen, x86,
	Sean Christopherson, Paolo Bonzini, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter
  Cc: linux-kernel, kvm, dri-devel, Kevin Loughlin, Tom Lendacky,
	Kai Huang, Ingo Molnar, Zheyun Shen, Mingwei Zhang,
	Francesco Lavra

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


^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2025-07-11  8:52 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-22 23:37 [PATCH v3 0/8] x86, KVM: Optimize SEV cache flushing Sean Christopherson
2025-05-22 23:37 ` [PATCH v3 1/8] drm/gpu: Remove dead checks on wbinvd_on_all_cpus()'s return value Sean Christopherson
2025-07-10 14:47   ` [tip: x86/core] " tip-bot2 for Sean Christopherson
2025-07-11  8:52   ` [PATCH v3 1/8] " Simona Vetter
2025-05-22 23:37 ` [PATCH v3 2/8] x86, lib: Drop the unused return value from wbinvd_on_all_cpus() Sean Christopherson
2025-07-10 14:47   ` [tip: x86/core] x86/lib: " tip-bot2 for Sean Christopherson
2025-05-22 23:37 ` [PATCH v3 3/8] x86, lib: Add WBNOINVD helper functions Sean Christopherson
2025-07-10 11:29   ` Borislav Petkov
2025-07-10 13:56     ` Sean Christopherson
2025-07-10 14:38       ` Borislav Petkov
2025-07-10 14:37     ` Peter Zijlstra
2025-07-10 15:47       ` Peter Zijlstra
2025-07-10 15:55         ` Sean Christopherson
2025-07-10 15:58           ` Peter Zijlstra
2025-07-11  8:51         ` Simona Vetter
2025-07-11  8:52         ` Peter Zijlstra
2025-07-10 14:47   ` [tip: x86/core] x86/lib: " tip-bot2 for Kevin Loughlin
2025-05-22 23:37 ` [PATCH v3 4/8] x86, lib: Add wbinvd and wbnoinvd helpers to target multiple CPUs Sean Christopherson
2025-07-10 14:47   ` [tip: x86/core] x86/lib: Add WBINVD and WBNOINVD " tip-bot2 for Zheyun Shen
2025-05-22 23:37 ` [PATCH v3 5/8] KVM: x86: Use wbinvd_on_cpu() instead of an open-coded equivalent Sean Christopherson
2025-05-22 23:37 ` [PATCH v3 6/8] KVM: SVM: Remove wbinvd in sev_vm_destroy() Sean Christopherson
2025-05-22 23:37 ` [PATCH v3 7/8] KVM: SEV: Prefer WBNOINVD over WBINVD for cache maintenance efficiency Sean Christopherson
2025-05-22 23:37 ` [PATCH v3 8/8] KVM: SVM: Flush cache only on CPUs running SEV guest Sean Christopherson
2025-07-09 16:25 ` [PATCH v3 0/8] x86, KVM: Optimize SEV cache flushing Sean Christopherson
2025-07-09 18:57   ` Borislav Petkov
2025-07-09 21:36     ` Sean Christopherson
2025-07-10 23:08 ` Sean Christopherson

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).