linux/arch/powerpc
Benjamin Herrenschmidt cec08e7a94 [POWERPC] vmemmap fixes to use smaller pages
This changes vmemmap to use a different region (region 0xf) of the
address space, and to configure the page size of that region
dynamically at boot.

The problem with the current approach of always using 16M pages is that
it's not well suited to machines that have small amounts of memory such
as small partitions on pseries, or PS3's.

In fact, on the PS3, failure to allocate the 16M page backing vmmemmap
tends to prevent hotplugging the HV's "additional" memory, thus limiting
the available memory even more, from my experience down to something
like 80M total, which makes it really not very useable.

The logic used by my match to choose the vmemmap page size is:

 - If 16M pages are available and there's 1G or more RAM at boot,
   use that size.
 - Else if 64K pages are available, use that
 - Else use 4K pages

I've tested on a POWER6 (16M pages) and on an iSeries POWER3 (4K pages)
and it seems to work fine.

Note that I intend to change the way we organize the kernel regions &
SLBs so the actual region will change from 0xf back to something else at
one point, as I simplify the SLB miss handler, but that will be for a
later patch.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-05-15 20:49:25 +10:00
..
boot [POWERPC] 85xx: SBC8548 - Add flash support and HW Rev reporting 2008-05-13 08:53:48 -05:00
configs [POWERPC] 86xx: mpc8610_hpcd: add support for NOR and NAND flashes 2008-05-13 08:53:48 -05:00
kernel [POWERPC] ppc: Don't run prom_init_check for arch/ppc builds 2008-05-12 20:27:50 +10:00
kvm KVM: ppc: deliver INTERRUPT_FP_UNAVAIL to the guest 2008-05-04 14:44:45 +03:00
lib [POWERPC] ppc: More compile fixes 2008-05-12 22:57:51 +10:00
math-emu [POWERPC] Replace remaining __FUNCTION__ occurrences 2008-04-01 20:43:09 +11:00
mm [POWERPC] vmemmap fixes to use smaller pages 2008-05-15 20:49:25 +10:00
oprofile Merge branch 'linux-2.6' 2008-04-14 21:11:02 +10:00
platforms [POWERPC] spufs: Fix pointer reference in find_victim 2008-05-15 20:47:17 +10:00
sysdev Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-05-09 08:06:31 -07:00
xmon [POWERPC] spufs: fix concurrent delivery of class 0 & 1 exceptions 2008-05-05 13:33:44 +10:00
.gitignore [POWERPC] Add files build to .gitignore 2006-12-04 20:41:29 +11:00
Kconfig [RAPIDIO] Add RapidIO option to kernel configuration 2008-04-29 19:40:27 +10:00
Kconfig.debug [POWERPC] Add IRQSTACKS support on ppc32 2008-04-29 15:57:34 +10:00
Makefile KVM: ppc: PowerPC 440 KVM implementation 2008-04-27 18:21:39 +03:00