On Wed, Dec 1, 2021 at 6:03 PM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > On Wed, Dec 01, 2021, David Matlack wrote: > > On Fri, Nov 19, 2021 at 8:51 PM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > > > > > Overhaul TDP MMU's handling of zapping and TLB flushing to reduce the > > > number of TLB flushes, and to clean up the zapping code. The final patch > > > realizes the biggest change, which is to use RCU to defer any TLB flush > > > due to zapping a SP to the caller. The largest cleanup is to separate the > > > flows for zapping roots (zap _everything_), zapping leaf SPTEs (zap guest > > > mappings for whatever reason), and zapping a specific SP (NX recovery). > > > They're currently smushed into a single zap_gfn_range(), which was a good > > > idea at the time, but became a mess when trying to handle the different > > > rules, e.g. TLB flushes aren't needed when zapping a root because KVM can > > > safely zap a root if and only if it's unreachable. > > > > > > For booting an 8 vCPU, remote_tlb_flush (requests) goes from roughly > > > 180 (600) to 130 (215). > > > > > > Please don't apply patches 02 and 03, they've been posted elsehwere and by > > > other people. I included them here because some of the patches have > > > pseudo-dependencies on their changes. Patch 01 is also posted separately. > > > I had a brain fart and sent it out realizing that doing so would lead to > > > oddities. > > > > What's the base commit for this series? > > Pretty sure it's based on a stale kvm/queue, commit 81d7c6659da0 ("KVM: VMX: Remove > vCPU from PI wakeup list before updating PID.NV"). Time to add useAutoBase=true... That applied cleanly. Thanks!