Re: [PATCH] kvm: x86/mmu: Use cpuid to determine max gfn

From: Sean Christopherson
Date: Thu Dec 03 2020 - 19:44:44 EST


On Thu, Dec 03, 2020, Rick Edgecombe wrote:
> In the TDP MMU, use shadow_phys_bits to dermine the maximum possible GFN
> mapped in the guest for zapping operations. boot_cpu_data.x86_phys_bits
> may be reduced in the case of HW features that steal HPA bits for other
> purposes. However, this doesn't necessarily reduce GPA space that can be
> accessed via TDP. So zap based on a maximum gfn calculated with MAXPHYADDR
> retrieved from CPUID. This is already stored in shadow_phys_bits, so use
> it instead of x86_phys_bits.
>
> Fixes: faaf05b00aec ("kvm: x86/mmu: Support zapping SPTEs in the TDP MMU")
> Signed-off-by: Rick Edgecombe <rick.p.edgecombe@xxxxxxxxx>

Dang, in hindsight it'd be nice if KVM_CAP_SMALLER_MAXPHYADDR allowed explicitly
setting the max MAXPHYADDR for an entire VM instead of being a simple toggle.
E.g. TDX and SEV-ES likely could also make use of "what's this VM's max GPA?".

Reviewed-by: Sean Christopherson <seanjc@xxxxxxxxxx>