Re: [PATCH 00/12] KVM: MMU: do not unload MMU roots on all role changes

From: Sean Christopherson
Date: Wed Feb 09 2022 - 12:16:18 EST


On Wed, Feb 09, 2022, Paolo Bonzini wrote:
> On 2/9/22 18:07, Sean Christopherson wrote:
> > On Wed, Feb 09, 2022, Paolo Bonzini wrote:
> > > The TDP MMU has a performance regression compared to the legacy MMU
> > > when CR0 changes often. This was reported for the grsecurity kernel,
> > > which uses CR0.WP to implement kernel W^X. In that case, each change to
> > > CR0.WP unloads the MMU and causes a lot of unnecessary work. When running
> > > nested, this can even cause the L1 to hardly make progress, as the L0
> > > hypervisor it is overwhelmed by the amount of MMU work that is needed.
> >
> > FWIW, my flushing/zapping series fixes this by doing the teardown in an async
> > worker. There's even a selftest for this exact case :-)
> >
> > https://lore.kernel.org/all/20211223222318.1039223-1-seanjc@xxxxxxxxxx
>
> I'll check it out (it's next on my list as soon as I finally push
> kvm/{master,next}, which in turn was blocked by this work).

No rush, I need to spin a new version (rebase, and hopefully drop unnecessarily
complex be3havior).

> But not zapping the roots is even better

No argument there :-)