linux/include
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
..
acpi
asm-alpha fix asm-alpha/types.h breakage 2008-05-04 14:45:55 -07:00
asm-arm [ARM] pxa: Fix RCSR handling 2008-05-08 18:04:02 +01:00
asm-avr32 avr32: types: use <asm-generic/int-*.h> for the avr32 architecture 2008-05-02 16:18:20 -07:00
asm-blackfin Blackfin Serial Driver: abstract away DLAB differences into header 2008-05-07 11:41:26 +08:00
asm-cris cris: types: use <asm-generic/int-*.h> for the cris architecture 2008-05-02 16:18:20 -07:00
asm-frv frv: types: use <asm-generic/int-*.h> for the frv architecture 2008-05-02 16:18:20 -07:00
asm-generic types: add C99-style constructors to <asm-generic/int-*.h> 2008-05-02 16:18:42 -07:00
asm-h8300 h8300: types: use <asm-generic/int-*.h> for the h8300 architecture 2008-05-02 16:18:21 -07:00
asm-ia64 ia64: types: use <asm-generic/int-*.h> for the ia64 architecture 2008-05-02 16:18:21 -07:00
asm-m32r m32r: types: use <asm-generic/int-*.h> for the m32r architecture 2008-05-02 16:18:21 -07:00
asm-m68k m68k: remove old mac_esp cruft 2008-05-05 12:38:50 -07:00
asm-m68knommu m68knommu: rework definition of HZ 2008-05-01 08:08:36 -07:00
asm-mips [MIPS] Get rid of __ilog2 2008-05-12 16:46:55 +01:00
asm-mn10300 MN10300: Make cpu_relax() invoke barrier() 2008-05-08 10:49:39 -07:00
asm-parisc parisc: types: use <asm-generic/int-*.h> for the parisc architecture 2008-05-02 16:18:32 -07:00
asm-powerpc [POWERPC] vmemmap fixes to use smaller pages 2008-05-15 20:49:25 +10:00
asm-ppc [POWERPC] ppc: More compile fixes 2008-05-12 22:57:51 +10:00
asm-s390 types: s390: fix #ifdef reversal in <asm-s390/types.h> 2008-05-12 08:49:59 -07:00
asm-sh sh: Fix DMAC base address for SH7709S 2008-05-09 19:04:12 +09:00
asm-sparc sparc32: Fix build. 2008-05-11 15:47:05 -07:00
asm-sparc64 sparc: Fix debugger syscall restart interactions. 2008-05-11 02:07:19 -07:00
asm-um rename div64_64 to div64_u64 2008-05-01 08:03:58 -07:00
asm-v850 v850: types: use <asm-generic/int-*.h> for the v850 architecture 2008-05-02 16:18:41 -07:00
asm-x86 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86 2008-05-10 21:10:48 -07:00
asm-xtensa xtensa: types: use <asm-generic/int-*.h> for the xtensa architecture 2008-05-02 16:18:42 -07:00
crypto [CRYPTO] api: Fix scatterwalk_sg_chain 2008-05-01 18:22:28 +08:00
keys
linux Make 'cond_resched()' nullification depend on PREEMPT_BKL 2008-05-12 13:34:13 -07:00
math-emu
media i2c: Convert some more new-style drivers to use module aliasing 2008-05-11 20:37:06 +02:00
mtd
net ip: Make use of the inline function dst_metric_locked() 2008-05-04 22:12:43 -07:00
pcmcia
rdma IB: expand ib_umem_get() prototype 2008-04-29 08:06:12 -07:00
rxrpc
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-05-02 13:52:35 -07:00
sound [ALSA] Add MPU401_INFO_NO_ACK bitflag 2008-04-29 19:01:56 +02:00
video fbdev: platforming hecubafb and n411 2008-04-28 08:58:41 -07:00
xen
Kbuild