[S390] add support for physical memory > 4TB
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 27 Dec 2011 10:27:07 +0000 (11:27 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 27 Dec 2011 10:27:10 +0000 (11:27 +0100)
commit14045ebf1e1156d966a796cacad91028e01797e5
tree75fd97e935a9c337e95dc5202bafbf2634cf170b
parent4999023aa95a00507d3f100ea75510c5c7270f74
[S390] add support for physical memory > 4TB

The kernel address space of a 64 bit kernel currently uses a three level
page table and the vmemmap array has a fixed address and a fixed maximum
size. A three level page table is good enough for systems with less than
3.8TB of memory, for bigger systems four page table levels need to be
used. Each page table level costs a bit of performance, use 3 levels for
normal systems and 4 levels only for the really big systems.
To avoid bloating sparse.o too much set MAX_PHYSMEM_BITS to 46 for a
maximum of 64TB of memory.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/pgtable.h
arch/s390/include/asm/sparsemem.h
arch/s390/kernel/setup.c
arch/s390/mm/init.c
arch/s390/mm/pgtable.c