diff options
author | Becky Bruce <beckyb@kernel.crashing.org> | 2011-06-28 05:54:48 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-09-19 19:19:40 -0400 |
commit | 41151e77a4d96ea138cede6d84c955aa4769ce74 (patch) | |
tree | 2d997b77b9adf406a2fd30326bff688577d2e64f /arch/powerpc/platforms | |
parent | 7df5659eefad9b6d457ccdee016bd78bd064cfc0 (diff) |
powerpc: Hugetlb for BookE
Enable hugepages on Freescale BookE processors. This allows the kernel to
use huge TLB entries to map pages, which can greatly reduce the number of
TLB misses and the amount of TLB thrashing experienced by applications with
large memory footprints. Care should be taken when using this on FSL
processors, as the number of large TLB entries supported by the core is low
(16-64) on current processors.
The supported set of hugepage sizes include 4m, 16m, 64m, 256m, and 1g.
Page sizes larger than the max zone size are called "gigantic" pages and
must be allocated on the command line (and cannot be deallocated).
This is currently only fully implemented for Freescale 32-bit BookE
processors, but there is some infrastructure in the code for
64-bit BooKE.
Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r-- | arch/powerpc/platforms/Kconfig.cputype | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype index e06e39589a09..a85990c886e9 100644 --- a/arch/powerpc/platforms/Kconfig.cputype +++ b/arch/powerpc/platforms/Kconfig.cputype | |||
@@ -69,6 +69,7 @@ config PPC_BOOK3S_64 | |||
69 | bool "Server processors" | 69 | bool "Server processors" |
70 | select PPC_FPU | 70 | select PPC_FPU |
71 | select PPC_HAVE_PMU_SUPPORT | 71 | select PPC_HAVE_PMU_SUPPORT |
72 | select SYS_SUPPORTS_HUGETLBFS | ||
72 | 73 | ||
73 | config PPC_BOOK3E_64 | 74 | config PPC_BOOK3E_64 |
74 | bool "Embedded processors" | 75 | bool "Embedded processors" |
@@ -173,6 +174,7 @@ config BOOKE | |||
173 | config FSL_BOOKE | 174 | config FSL_BOOKE |
174 | bool | 175 | bool |
175 | depends on (E200 || E500) && PPC32 | 176 | depends on (E200 || E500) && PPC32 |
177 | select SYS_SUPPORTS_HUGETLBFS if PHYS_64BIT | ||
176 | default y | 178 | default y |
177 | 179 | ||
178 | # this is for common code between PPC32 & PPC64 FSL BOOKE | 180 | # this is for common code between PPC32 & PPC64 FSL BOOKE |
@@ -296,7 +298,7 @@ config PPC_BOOK3E_MMU | |||
296 | 298 | ||
297 | config PPC_MM_SLICES | 299 | config PPC_MM_SLICES |
298 | bool | 300 | bool |
299 | default y if HUGETLB_PAGE || (PPC_STD_MMU_64 && PPC_64K_PAGES) | 301 | default y if (PPC64 && HUGETLB_PAGE) || (PPC_STD_MMU_64 && PPC_64K_PAGES) |
300 | default n | 302 | default n |
301 | 303 | ||
302 | config VIRT_CPU_ACCOUNTING | 304 | config VIRT_CPU_ACCOUNTING |