This question might be funny (also i am very new to hypervisor).I have big confusion about SLAT (why it is required?).If i am not wrong SLAT(Second Level Address Translation) is used to do the address translation for guest virtual addr to actual physical address(guest virtual to host physical(correct me if am wrong, i.e: guest virt addr --> host virt addr --> host physical address). If HW not supporting SLAT then we have to use shadow page table to do the same (which is more overhead to CPU for doing additional translation in SW).
But my question is, can't we skip this page table handling by pass the actual physical memory to guest OS and let guest os handle the same (instead of using SLAT or shadow paging)? like UNMAP few memory banks (physical RAM address range) from Hypervisor and allocate the same to guest and launch that particular CPU with mmu off and exactly before start executing guest code. Code (might be kernel boot code) running in guest let it create its own page tables and enable MMU instead of having SLAT? When we required to stop the VM (at end guest opt should stop the mmu again), then we can restore the HV paging back to that particular CPU core and enable the MMU, right?
Is it any hole/problem in this approach (is this make sense?)? Can't we skip SLAT in virtualization?
(Kindly forgive me if my question not make any sense, as i am very new to virtualization :( )