ia64/xen-unstable

changeset 5066:c4353a81ae5b

bitkeeper revision 1.1159.258.150 (428e6fdeb6W1XbDj2YkcF53xkdUozA)

[PATCH] Re: PAE

> We're taking quite a chunk out of lowmem, though....

Uhm, well, no, we don't. We should though, fix is below.

Current code in unstable takes the address space away from the
vmalloc area, not the lowmem area. vmalloc space is 128 MB by
default, so the non-PAE hypervisor hole fits in and it works
nevertheless. The larger PAE mode hypervisor hole doesn't fit
in, so it breaks when you use enougth memory (somewhere around
800-900 MB). I think that is the bug Scott Parish trapped into.

Gerd
author kraxel@bytesex.org[kaf24]
date Fri May 20 23:16:46 2005 +0000 (2005-05-20)
parents ba07aa456da4
children 6640eb3cb41d 543ffea3fc12
files BitKeeper/etc/logging_ok linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h
line diff
     1.1 --- a/BitKeeper/etc/logging_ok	Fri May 20 23:12:23 2005 +0000
     1.2 +++ b/BitKeeper/etc/logging_ok	Fri May 20 23:16:46 2005 +0000
     1.3 @@ -40,6 +40,7 @@ kaf24@scramble.cl.cam.ac.uk
     1.4  kaf24@striker.cl.cam.ac.uk
     1.5  kaf24@viper.(none)
     1.6  katzj@redhat.com
     1.7 +kraxel@bytesex.org
     1.8  laudney@eclipse.(none)
     1.9  lists-xen@pimb.org
    1.10  lynx@idefix.cl.cam.ac.uk
     2.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c	Fri May 20 23:12:23 2005 +0000
     2.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c	Fri May 20 23:16:46 2005 +0000
     2.3 @@ -654,7 +654,10 @@ void __init mem_init(void)
     2.4  #else
     2.5  	high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
     2.6  #endif
     2.7 -
     2.8 +	printk("vmalloc area: %lx-%lx, maxmem %lx\n",
     2.9 +	       VMALLOC_START,VMALLOC_END,MAXMEM);
    2.10 +	BUG_ON(VMALLOC_START > VMALLOC_END);
    2.11 +	
    2.12  	/* this will put all low memory onto the freelists */
    2.13  	totalram_pages += __free_all_bootmem();
    2.14  	/* XEN: init and count low-mem pages outside initial allocation. */
     3.1 --- a/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h	Fri May 20 23:12:23 2005 +0000
     3.2 +++ b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h	Fri May 20 23:16:46 2005 +0000
     3.3 @@ -176,7 +176,7 @@ extern int sysctl_legacy_va_layout;
     3.4  
     3.5  #define PAGE_OFFSET		((unsigned long)__PAGE_OFFSET)
     3.6  #define VMALLOC_RESERVE		((unsigned long)__VMALLOC_RESERVE)
     3.7 -#define MAXMEM			(-__PAGE_OFFSET-__VMALLOC_RESERVE)
     3.8 +#define MAXMEM			(HYPERVISOR_VIRT_START-__PAGE_OFFSET-__VMALLOC_RESERVE)
     3.9  #define __pa(x)			((unsigned long)(x)-PAGE_OFFSET)
    3.10  #define __va(x)			((void *)((unsigned long)(x)+PAGE_OFFSET))
    3.11  #define pfn_to_kaddr(pfn)      __va((pfn) << PAGE_SHIFT)