This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] Some tables used when shadowable

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Some tables used when shadowable
From: confucius <henanwxr@xxxxxxxxxxx>
Date: Fri, 27 May 2011 10:15:31 -0700 (PDT)
Delivery-date: Fri, 27 May 2011 11:41:50 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi, I find there are several kinds of tables are used when shadowsable. They
are defined as follow:
 struct arch_vcpu
    pagetable_t guest_table;            /* (MFN) guest notion of cr3 */
    pagetable_t shadow_table[4];        /* (MFN) shadow(s) of guest */
    pagetable_t monitor_table;          /* (MFN) hypervisor PT (for HVM) */
    unsigned long cr3;                  /* (MA) value to install in HW CR3

I am confused by these tables. My understanding as follow:

1.      guest_table
Does guest_table point to MFN of page tables which constructed used by guest
where it convert from? guest_cr[3] or hw_cr[3]?
What is it used? Does it used for VMM when emulating? such as: when guest
generate page fault, it will trigger VM exit, 
then VMM read GUEST_CR3 and convert GUEST_CR3 to MFN ,then store the MFN in
guest_table, now because the MFN is the guest physical
address ,so VMM will convert it to the machine physical address via P2M
table? right?

2. shadow_table
hw_cr[3] and GUEST_CR3  both point to shadow_table, right?

3. monitor_table
I am not sure the use of monitor_table.
Does it used for VMM access guest's address space?
And I find HOST_CR3 point to monitor table,why HOST_CR3 pointing it?
I think HOST_CR3 should point to VMM's page table when VM exit, then VMM can
access address space itself. But why HOST_CR3 don't point to the page table

Anyone help me? 

View this message in context: 
Sent from the Xen - Dev mailing list archive at Nabble.com.

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>