aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkraxel@bytesex.org[kaf24] <kraxel@bytesex.org[kaf24]>2005-05-20 23:16:46 +0000
committerkraxel@bytesex.org[kaf24] <kraxel@bytesex.org[kaf24]>2005-05-20 23:16:46 +0000
commit43e04538d1498ea63ab2231af1707188ef3b53e4 (patch)
treeaa78f2d6ffd353aa0db5acdadfbb6bb9de130bfd
parent366aeecb5bc89e4061a8ecd164796a083c9f54c2 (diff)
downloadxen-43e04538d1498ea63ab2231af1707188ef3b53e4.tar.gz
xen-43e04538d1498ea63ab2231af1707188ef3b53e4.tar.bz2
xen-43e04538d1498ea63ab2231af1707188ef3b53e4.zip
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
-rw-r--r--BitKeeper/etc/logging_ok1
-rw-r--r--linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c5
-rw-r--r--linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h2
3 files changed, 6 insertions, 2 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok
index e119b60bfa..59eac58efc 100644
--- a/BitKeeper/etc/logging_ok
+++ b/BitKeeper/etc/logging_ok
@@ -40,6 +40,7 @@ kaf24@scramble.cl.cam.ac.uk
kaf24@striker.cl.cam.ac.uk
kaf24@viper.(none)
katzj@redhat.com
+kraxel@bytesex.org
laudney@eclipse.(none)
lists-xen@pimb.org
lynx@idefix.cl.cam.ac.uk
diff --git a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c
index 698aa2b482..6c4387ac3a 100644
--- a/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c
+++ b/linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c
@@ -654,7 +654,10 @@ void __init mem_init(void)
#else
high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
#endif
-
+ printk("vmalloc area: %lx-%lx, maxmem %lx\n",
+ VMALLOC_START,VMALLOC_END,MAXMEM);
+ BUG_ON(VMALLOC_START > VMALLOC_END);
+
/* this will put all low memory onto the freelists */
totalram_pages += __free_all_bootmem();
/* XEN: init and count low-mem pages outside initial allocation. */
diff --git a/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h
index 345b8264b8..af8ccd4652 100644
--- a/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h
+++ b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h
@@ -176,7 +176,7 @@ extern int sysctl_legacy_va_layout;
#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
#define VMALLOC_RESERVE ((unsigned long)__VMALLOC_RESERVE)
-#define MAXMEM (-__PAGE_OFFSET-__VMALLOC_RESERVE)
+#define MAXMEM (HYPERVISOR_VIRT_START-__PAGE_OFFSET-__VMALLOC_RESERVE)
#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)