WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] page tables location

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] page tables location
From: PUCCETTI Armand <armand.puccetti@xxxxxx>
Date: Wed, 21 Mar 2007 18:50:03 +0100
Delivery-date: Wed, 21 Mar 2007 10:48:15 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 1.5.0.9 (X11/20070103)
A few simple questions:

1. page tables: Could please someone lighten me up on where the page tables tree physically resides on a 64 bits machine? Are they contiguous and are they constrained some address space? which one?
Where (function) are these tables extended, when necessary?

2. alloc_bitmap: the variable alloc_bitmap that contains the flags to check if a page is allocated or not is initialised like this:

...
xenheap_phys_start = init_boot_allocator(_pa(&_end));
...

unsigned long init_boot_allocator(unsigned long bitmap_start)
{
 bitmap_start = round_pgup(bitmap_start);

 /* Allocate space for the allocation bitmap. */
 bitmap_size = max_page / 8;
 bitmap_size = round_pgup(bitmap_size);
 alloc_bitmap = (unsigned long *)phys_to_virt(bitmap_start);
 /* All allocated by default. */
 memset(alloc_bitmap, ~0, bitmap_size);
 return bitmap_start + bitmap_size;
}

so, alloc_bitmap is apparently put somewhere in virtual memory (a little after 0xFFFF830000100000 according to xen.lds.S). However, it seems that its 36K are physically allocated between 0x00000000004b0000 and 0x00000000004b9000. This is a reserved mem area, so how is alloc_bitmap placed at this
location?

3. Is there any physical memory map, explaining what objects are located in low mem at fixed addresses?
something that refines the one printed at boot time.

thanks
Armand






_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] page tables location, PUCCETTI Armand <=