Search code examples
memory-managementvirtualizationvirtual-memoryhypervisor

How does a type-1 hypervisor virtualize a guest page table?


I understand that CR3 contains the pointer to the page table. So I guess that VMenter changes CR3 to a virtualized register that's specific to the guest VM. Then the guest can load and swap page tables as usual, while the SLAT translates the guest physical pages to actual physical pages. Is that what happens?


Solution

  • When using EPT, there is no need to virtualize the guest page tables at all. CR3 is simply loaded with the guest value.