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

Sean Christopherson
2022-02-09T17:16:18Z

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@google.com
>
> 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 :-)