On 4/28/20 1:14 AM, Paolo Bonzini wrote:
On 28/04/20 09:25, Krish Sadhukhan wrote:
Absolutely. Unrestricted guest requires EPT, but EPT is invisible to
the guest. (Currently EPT requires guest MAXPHYADDR = host MAXPHYADDR,
in the sense that the guest can detect that the host is lying about
MAXPHYADDR; but that is really a bug that I hope will be fixed in 5.8,
relaxing the requirement to guest MAXPHYADDR <= host PHYADDR).
Should EPT for the nested guest be set up in the normal way (PML4E ->
PDPTE-> PDE -> PTE) when GUEST_CR0.PE is zero ? Or does it have to be a
special set up like only the PTEs are needed because no protection and
no paging are used ?
I don't understand. When EPT is in use, the vmcs02 CR3 is simply set to
the vmcs12 CR3.
Sorry, I should have framed my question in a better way.
My question is how should L1 in the test code set up EPTP for L2 when
L2 is an unrestricted guest with no protection (GUEST_CR0.PE = 0) and no
paging (GUEST_CR0.PG = 0) ? Should EPTP in test code be set up in the
same way as when L2 is an unrestricted guest with protection and paging
enabled ?
Getting confused by legacy 16-bit Real Mode and an unrestricted guest in
Real Mode. :-)
Paolo