kernel_optimize_test/arch/i386
Jeremy Fitzhardinge 9ce8c2ed12 [PATCH] i386: map enough initial memory to create lowmem mappings
head.S creates the very initial pagetable for the kernel.  This just
maps enough space for the kernel itself, and an allocation bitmap.
The amount of mapped memory is rounded up to 4Mbytes, and so this
typically ends up mapping 8Mbytes of memory.

When booting, pagetable_init() needs to create mappings for all
lowmem, and the pagetables for these mappings are allocated from the
free pages around the kernel in low memory.  If the number of
pagetable pages + kernel size exceeds head.S's initial mapping, it
will end up faulting on an unmapped page.  This will only happen with
specific combinations of kernel size and memory size.

This patch makes sure that head.S also maps enough space to fit the
kernel pagetables as well as the kernel itself.  It ends up using an
additional two pages of unreclaimable memory.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Acked-by: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andi Kleen <ak@suse.de>
Cc: Zachary Amsden <zach@vmware.com>
Cc: Chris Wright <chrisw@sous-sol.org>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
2007-05-02 19:27:16 +02:00
..
boot [PATCH] x86: deflate stack usage in lib/inflate.c 2007-05-02 19:27:15 +02:00
crypto
kernel [PATCH] i386: map enough initial memory to create lowmem mappings 2007-05-02 19:27:16 +02:00
lib [PATCH] i386: type cast clean up for find_next_zero_bit 2007-05-02 19:27:08 +02:00
mach-default [PATCH] clockevents: i386 drivers 2007-02-16 08:13:59 -08:00
mach-es7000 ACPICA: Remove duplicate table manager 2007-02-02 21:14:28 -05:00
mach-generic [PATCH] i386: modpost apic related warning fixes 2007-05-02 19:27:08 +02:00
mach-visws [PATCH] visws: sgivwfb as module needs exports 2006-12-08 08:29:07 -08:00
mach-voyager [PATCH] i386: Use per-cpu GDT immediately upon boot 2007-05-02 19:27:10 +02:00
math-emu [PATCH] i386: avoid gcc extension 2007-02-13 13:26:24 +01:00
mm [PATCH] i386: PARAVIRT: flush lazy mmu updates on kunmap_atomic 2007-05-02 19:27:15 +02:00
oprofile [PATCH] i386: Support Oprofile for AMD Family 10 CPUs 2007-05-02 19:27:06 +02:00
pci [PATCH] MSI-X: fix resume crash 2007-03-28 13:59:37 -07:00
power [PATCH] x86: Move swsusp __pa() dependent code to arch portion 2007-05-02 19:27:07 +02:00
defconfig [PATCH] i386: Update defconfig 2007-05-02 19:27:04 +02:00
Kconfig [PATCH] i386: Use menuconfig objects - APM 2007-05-02 19:27:12 +02:00
Kconfig.cpu [PATCH] i386: Add an option for the VIA C7 which sets appropriate L1 cache 2007-05-02 19:27:05 +02:00
Kconfig.debug [PATCH] i386: PARAVIRT: Remove CONFIG_DEBUG_PARAVIRT 2007-05-02 19:27:13 +02:00
Makefile [PATCH] x86: Drop cc-options call for all options supported in gcc 3.2+ 2007-05-02 19:27:06 +02:00
Makefile.cpu [PATCH] i386: Fix usage of -mtune when X86_GENERIC=y or CONFIG_MCORE2=y 2007-05-02 19:27:06 +02:00