Re: [RFC PATCH V3 3/4] KVM: X86: Alloc role.pae_root shadow page

From: Paolo Bonzini
Date: Thu Apr 14 2022 - 05:08:55 EST


On 4/14/22 11:07, Lai Jiangshan wrote:
I don't think this will work for shadow paging. CR3 only has to be 32-byte aligned
for PAE paging. Unless I'm missing something subtle in the code, KVM will incorrectly
reuse a pae_root if the guest puts multiple PAE CR3s on a single page because KVM's
gfn calculation will drop bits 11:5.

I forgot about it.


Isn't the pae_root always rebuilt by

if (!tdp_enabled && memcmp(mmu->pdptrs, pdpte, sizeof(mmu->pdptrs)))
kvm_mmu_free_roots(vcpu->kvm, mmu, KVM_MMU_ROOT_CURRENT);

in load_pdptrs? I think reuse cannot happen.

Paolo