Re: [PATCH 0/7] x86, KVM: Optimize SEV cache flushing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2/26/25 19:48, Sean Christopherson wrote:
> This is the combination of Kevin's WBNOINVD series[1] with Zheyun's targeted
> flushing series[2].  This is very, very lightly tested (emphasis on "very").

We ran this series through our SEV validation tests over the weekend on
Rome, Milan and Genoa systems and didn't observe any issues.

Thanks,
Tom

> 
> Note, I dropped Reviewed-by tags for patches to which I made non-trivial
> modifications.
> 
> [1] https://lore.kernel.org/all/20250201000259.3289143-1-kevinloughlin@xxxxxxxxxx
> [2] https://lore.kernel.org/all/20250128015345.7929-1-szy0127@xxxxxxxxxxx
> 
> Relative to those series:
> 
>  - Name the WBNOINVD opcode macro ASM_WBNOINVD to avoid a conflict with
>    KVM's CPUID stuff.
>  - Fix issues with SMP=n.
>  - Define all helpers in x86/lib.
>  - Don't return 0 from the helpers.
>  - Rename the CPU bitmap to avoid a naming collisions with KVM's existing
>    pCPU bitmap for WBINVD, and to not have WBINVD (versus WBNOINVD) in the
>    name.
>  - Fix builds where CPU bitmaps are off-stack.
>  - Massage comments.
>  - Mark a CPU as having done VMRUN in pre_sev_run(), but test to see if
>    the CPU already ran to avoid the locked RMW, i.e. to (hopefully) avoid
>    bouncing the cache line.
> 
> Kevin Loughlin (2):
>   x86, lib: Add WBNOINVD helper functions
>   KVM: SEV: Prefer WBNOINVD over WBINVD for cache maintenance efficiency
> 
> Sean Christopherson (2):
>   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):
>   KVM: SVM: Remove wbinvd in sev_vm_destroy()
>   x86, lib: Add wbinvd and wbnoinvd helpers to target multiple CPUs
>   KVM: SVM: Flush cache only on CPUs running SEV guest
> 
>  arch/x86/include/asm/smp.h           | 23 ++++++--
>  arch/x86/include/asm/special_insns.h | 19 ++++++-
>  arch/x86/kvm/svm/sev.c               | 79 +++++++++++++++++++---------
>  arch/x86/kvm/svm/svm.h               |  1 +
>  arch/x86/kvm/x86.c                   | 11 +---
>  arch/x86/lib/cache-smp.c             | 26 ++++++++-
>  6 files changed, 119 insertions(+), 40 deletions(-)
> 
> 
> base-commit: fed48e2967f402f561d80075a20c5c9e16866e53




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux