On Thu, 07 Mar 2024 11:40:59 -0800, David Matlack wrote: > Process SPTEs zapped under the read-lock after the TLB flush and > replacement of REMOVED_SPTE with 0. This minimizes the contention on the > child SPTEs (if zapping an SPTE that points to a page table) and > minimizes the amount of time vCPUs will be blocked by the REMOVED_SPTE. > > In VMs with a large (400+) vCPUs, it can take KVM multiple seconds to > process a 1GiB region mapped with 4KiB entries, e.g. when disabling > dirty logging in a VM backed by 1GiB HugeTLB. During those seconds if a > vCPU accesses the 1GiB region being zapped it will be stalled until KVM > finishes processing the SPTE and replaces the REMOVED_SPTE with 0. > > [...] Applied to kvm-x86 mmu, with the tweaks mentioned earlier. Thanks! [1/1] KVM: x86/mmu: Process atomically-zapped SPTEs after replacing REMOVED_SPTE https://github.com/kvm-x86/linux/commit/aca48556c592 -- https://github.com/kvm-x86/linux/tree/next