On Thu, Dec 09, 2021, Paolo Bonzini wrote:
AMD proceessors define an address range that is reserved by HyperTransport and causes a failure if used for guest physical addresses. Avoid selftests failures by reserving those guest physical addresses; the rules are:
On parts with <40 bits, its fully hidden from software.
Before Fam17h, it was always 12G just below 1T, even if there was more
RAM above this location. In this case we just not use any RAM above 1T.
- On Fam17h and later, it is variable based on SME, and is either just
below 2^48 (no encryption) or 2^43 (encryption).
Fixes: ef4c9f4f6546 ("KVM: selftests: Fix 32-bit truncation of vm_get_max_gfn()") Cc: stable@vger.kernel.org Cc: David Matlack dmatlack@google.com Reported-by: Maxim Levitsky mlevitsk@redhat.com Signed-off-by: Paolo Bonzini pbonzini@redhat.com Message-Id: 20210805105423.412878-1-pbonzini@redhat.com Signed-off-by: Paolo Bonzini pbonzini@redhat.com
Reviewed-and-tested-by: Sean Christopherson seanjc@google.com
- /*
* Otherwise it's at the top of the physical address
* space, possibly reduced due to SME by bits 11:6 of
* CPUID[0x8000001f].EBX. Use the old conservative
* value if MAXPHYADDR is not enumerated.
It'd be nice to run these out to 80 chars when you apply.