BTW, I assume the software logic for KVM to find the HPA with a given HVA
(as you said like below) should be the same as the hardware logic in MMU
to translate ``GPA -> [extended/nested page tables] -> HPA''. If this is
true, I cannot understand how KVM can find a correct HPA with an HVA (e.g.,
array[0]'s HVA is not 0x0000000000000081 in the last email) that is
different from its corresponding GPA.
GPA -> [memslots] -> HVA -> [host page tables] -> HPA