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] Machine and Physical address

To: xen-devel@xxxxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Machine and Physical address
From: Richard Ta-Min <tamin@xxxxxxxxxxxxxxxx>
Date: Fri, 20 Aug 2004 10:01:28 +0000 (UTC)
Delivery-date: Sat, 21 Aug 2004 08:02:56 +0100
Envelope-to: steven.hand@xxxxxxxxxxxx
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
User-agent: Loom/3.14 (http://gmane.org/)

I am trying to undestand how the memory address translation works on Xen. 
My question is the following. Do the page table entries of a guest OS contain
physical page frame numbers OR real-world machine frame numbers ?

I have tried the following little experiment. 

1.) Within a guest OS (domain 1), I read the value of a page table entry
(pte_val). The value of 'pte_val>>12' would then correspond to either a machine
frame number or physical frame number.  

2.) Then from within domain0 I issued the hypervisor call HYPERVISOR_dom0_op
with option DOM0_GETMEMLIST. If I am correct, that hypervisor call returns a
list of real-world machine frame numbers being allocated to my guest OS.

3.) From the list I got in step 2 above, I search for 'pte_val>>12' but I do not
get any matching entry. However if I search for
phys_to_machine_mapping[pte_val>>12] then I do get a matching entry.

So from the above experiment it seems that pte_val contains physical page frame
numbers. However, if that is the case, I do not see how xen translates each
virtual memory reference within the guest OS into the correct address. Somehow,
each address translation that comes out of the intel's paging unit has to be
adjusted to the real-world machine page frame number.

I have a second question not directly related to the above. I am trying to trace
through XEN and I don't know where all the printk will be displayed. Printk
within the guest OS kernels are all logged within their respective
/var/log/messages files, but what about the printk within XEN ?

I read that XEN shares the console of domain0. My grub.conf file is configure 

kernel /xen.gz dom0_mem=100000
module /vmlinuz-2.4.26-xen0 root=/dev/hda7 ro console=tty1

But the printk from within XEN do not seem to appear on tty1.


SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
Xen-devel mailing list

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