On Thu, 19 Jul 2012 11:19:11 +0200 Norman Feske (NF) wrote:
NF> The lower portion of Vancouver's address space corresponds to the NF> guest-physical memory. This one-to-one relationship is imposed by the NF> NOVA hypervisor. For this reason, this particular virtual address range NF> must be kept free from ordinary memory objects (as I outlined in my NF> reply to Julian's posting).
Just to clarify this point:
The hypervisor neither forces you to put Vancouver and its associated VM in the same PD, nor does it force you to have one instance of Vancouver per VM. You can create a PD, remotely create a vCPU in it and establish the VMX/SVM portals to point to some other PD. Then that other PD can manage its virtual address space any way it wants.
That said, we have found that putting both VMM and VM in the same PD has a number of advantages. First, a VMM needs to frequently access the memory of its VM, e.g., to look at the guest page tables. Having a 1:1 relationship between virtual memory in the VMM and guest-physical memory of the VM greatly simplifies that task. Second, if the VMM and VM were in different PDs, you'd pay for two additional address-space switches on each VM exit.
Cheers, Udo