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


Re: [Xen-devel] x86-64's contig_initmem_init

On 30 Aug 2005, at 14:53, Jan Beulich wrote:

Hmm, interesting. If that change was done along with the one to
contig_initmem_init, it would have saved me well over a day of

It needed to be debugged here too. I can't foresee all bugs unfortunately. :-)

Anyway, I can't see where the respective freeing is done on i386, and I
still can't see how the tail part of the initial mapping is being made
use of on either 32- or 64bits.

For i386, it is freed to the bootmem allocator in register_bootmem_low_pages(), which walks a fake e820 table that is created by machine_specific_memory_setup() in include/asm-xen/asm-i386/mach-xen/setup_arch_post.h.

The tail part of the initial mapping has no special handling on i386 nor on x86_64. It just gets freed up when we free from 0 up to max_pfn, and it never gets reserved (the reserved region precisely covers kernel text/data and initial page tables).

Actually, that could be another bug on x86/64 -- I may need to truncate the initial mapping, or we may be ending up with spurious extra writable mappings to some pages... I'll take a look and see if this is the case.

 -- Keir

Xen-devel mailing list