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

From: Paolo Bonzini
Date: Fri Dec 04 2020 - 03:50:49 EST


On 04/12/20 01:43, Sean Christopherson wrote:
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>


Queued, thanks.

Paolo