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] 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 (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

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.


Xen-devel mailing list

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