diff options
-rw-r--r-- | mm/Kconfig | 27 | ||||
-rw-r--r-- | mm/huge_memory.c | 5 |
2 files changed, 30 insertions, 2 deletions
diff --git a/mm/Kconfig b/mm/Kconfig index d774f77538ce..3e81687263b5 100644 --- a/mm/Kconfig +++ b/mm/Kconfig | |||
@@ -303,9 +303,8 @@ config NOMMU_INITIAL_TRIM_EXCESS | |||
303 | See Documentation/nommu-mmap.txt for more information. | 303 | See Documentation/nommu-mmap.txt for more information. |
304 | 304 | ||
305 | config TRANSPARENT_HUGEPAGE | 305 | config TRANSPARENT_HUGEPAGE |
306 | bool "Transparent Hugepage Support" if EMBEDDED | 306 | bool "Transparent Hugepage Support" |
307 | depends on X86 && MMU | 307 | depends on X86 && MMU |
308 | default y | ||
309 | help | 308 | help |
310 | Transparent Hugepages allows the kernel to use huge pages and | 309 | Transparent Hugepages allows the kernel to use huge pages and |
311 | huge tlb transparently to the applications whenever possible. | 310 | huge tlb transparently to the applications whenever possible. |
@@ -316,6 +315,30 @@ config TRANSPARENT_HUGEPAGE | |||
316 | 315 | ||
317 | If memory constrained on embedded, you may want to say N. | 316 | If memory constrained on embedded, you may want to say N. |
318 | 317 | ||
318 | choice | ||
319 | prompt "Transparent Hugepage Support sysfs defaults" | ||
320 | depends on TRANSPARENT_HUGEPAGE | ||
321 | default TRANSPARENT_HUGEPAGE_ALWAYS | ||
322 | help | ||
323 | Selects the sysfs defaults for Transparent Hugepage Support. | ||
324 | |||
325 | config TRANSPARENT_HUGEPAGE_ALWAYS | ||
326 | bool "always" | ||
327 | help | ||
328 | Enabling Transparent Hugepage always, can increase the | ||
329 | memory footprint of applications without a guaranteed | ||
330 | benefit but it will work automatically for all applications. | ||
331 | |||
332 | config TRANSPARENT_HUGEPAGE_MADVISE | ||
333 | bool "madvise" | ||
334 | help | ||
335 | Enabling Transparent Hugepage madvise, will only provide a | ||
336 | performance improvement benefit to the applications using | ||
337 | madvise(MADV_HUGEPAGE) but it won't risk to increase the | ||
338 | memory footprint of applications without a guaranteed | ||
339 | benefit. | ||
340 | endchoice | ||
341 | |||
319 | # | 342 | # |
320 | # UP and nommu archs use km based percpu allocator | 343 | # UP and nommu archs use km based percpu allocator |
321 | # | 344 | # |
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index bce6e12140e2..30c3cec82023 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c | |||
@@ -27,7 +27,12 @@ | |||
27 | * allocations. | 27 | * allocations. |
28 | */ | 28 | */ |
29 | unsigned long transparent_hugepage_flags __read_mostly = | 29 | unsigned long transparent_hugepage_flags __read_mostly = |
30 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS | ||
30 | (1<<TRANSPARENT_HUGEPAGE_FLAG)| | 31 | (1<<TRANSPARENT_HUGEPAGE_FLAG)| |
32 | #endif | ||
33 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE_MADVISE | ||
34 | (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG)| | ||
35 | #endif | ||
31 | (1<<TRANSPARENT_HUGEPAGE_DEFRAG_FLAG)| | 36 | (1<<TRANSPARENT_HUGEPAGE_DEFRAG_FLAG)| |
32 | (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG); | 37 | (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG); |
33 | 38 | ||