Intel VMCS structure has separate logical areas for Guest and Host. Guest logical area stores the CR3 register for the guest, while the host area the CR3 register used from host'VMM.
When a logical processor with EPT enabled runs in VMX non-root mode for a VM, the VMCS guest CR3 register value stores the guest physical address of the first level of the guest page table hierarchy (e.g. PMLT4 4KiB table in case of 4-level page tables for the guest).
Now my question is: as far as I can tell with EPT disabled the logical processor's CR3 hardware register stores a machine physical memory address (MPA) even when it runs in VMX non-root mode in the context of a VM's vCPUs.
Now the question: suppose guest code wants read vCPU's CR3 register, e.g.
Code: Select all
mov eax, cr3