Re: [PATCH] KVM: x86/mmu: Calculate and check "full" mmu_role for nested MMU

From: Sean Christopherson
Date: Fri Jun 11 2021 - 12:47:04 EST


On Fri, Jun 11, 2021, Paolo Bonzini wrote:
> On 11/06/21 00:00, Sean Christopherson wrote:
> > things like the number of levels in the guest's page tables are
> > surprisingly important when walking the guest page tables
>
> Along which path though? I would have naively expected those to be driven
> only by the context->root_level.

The functional code is driven by context->root_level, but if KVM doesn't include
the level in the mmu_role then it will fail to update context->root_level when
L2 changes from 32-bit PAE to 64-bit. If all the CR0/CR4/EFER bits remain the
same, only the level will differ. Without this patch, role.level is always '0'
for the nested MMU.