diff options
author | Christoph Lameter <clameter@sgi.com> | 2007-05-17 01:11:01 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-17 08:23:04 -0400 |
commit | 0aa817f078b655d0ae36669169d73a5c8a388016 (patch) | |
tree | 140acc4d0dc992b4d20394f6a6412a7c1bb3a306 /arch | |
parent | 3ec0974210fe1b7c0618ad6e39a882a4237d7de2 (diff) |
Slab allocators: define common size limitations
Currently we have a maze of configuration variables that determine the
maximum slab size. Worst of all it seems to vary between SLAB and SLUB.
So define a common maximum size for kmalloc. For conveniences sake we use
the maximum size ever supported which is 32 MB. We limit the maximum size
to a lower limit if MAX_ORDER does not allow such large allocations.
For many architectures this patch will have the effect of adding large
kmalloc sizes. x86_64 adds 5 new kmalloc sizes. So a small amount of
memory will be needed for these caches (contemporary SLAB has dynamically
sizeable node and cpu structure so the waste is less than in the past)
Most architectures will then be able to allocate object with sizes up to
MAX_ORDER. We have had repeated breakage (in fact whenever we doubled the
number of supported processors) on IA64 because one or the other struct
grew beyond what the slab allocators supported. This will avoid future
issues and f.e. avoid fixes for 2k and 4k cpu support.
CONFIG_LARGE_ALLOCS is no longer necessary so drop it.
It fixes sparc64 with SLAB.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/blackfin/Kconfig | 8 | ||||
-rw-r--r-- | arch/frv/Kconfig | 8 | ||||
-rw-r--r-- | arch/m68knommu/Kconfig | 8 | ||||
-rw-r--r-- | arch/v850/Kconfig | 8 |
4 files changed, 0 insertions, 32 deletions
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index 1a4930509325..d80e5b1d686e 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig | |||
@@ -560,14 +560,6 @@ endchoice | |||
560 | 560 | ||
561 | source "mm/Kconfig" | 561 | source "mm/Kconfig" |
562 | 562 | ||
563 | config LARGE_ALLOCS | ||
564 | bool "Allow allocating large blocks (> 1MB) of memory" | ||
565 | help | ||
566 | Allow the slab memory allocator to keep chains for very large | ||
567 | memory sizes - upto 32MB. You may need this if your system has | ||
568 | a lot of RAM, and you need to able to allocate very large | ||
569 | contiguous chunks. If unsure, say N. | ||
570 | |||
571 | config BFIN_DMA_5XX | 563 | config BFIN_DMA_5XX |
572 | bool "Enable DMA Support" | 564 | bool "Enable DMA Support" |
573 | depends on (BF533 || BF532 || BF531 || BF537 || BF536 || BF534 || BF561) | 565 | depends on (BF533 || BF532 || BF531 || BF537 || BF536 || BF534 || BF561) |
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index 114738a45582..74eef7111f2b 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig | |||
@@ -102,14 +102,6 @@ config HIGHPTE | |||
102 | with a lot of RAM, this can be wasteful of precious low memory. | 102 | with a lot of RAM, this can be wasteful of precious low memory. |
103 | Setting this option will put user-space page tables in high memory. | 103 | Setting this option will put user-space page tables in high memory. |
104 | 104 | ||
105 | config LARGE_ALLOCS | ||
106 | bool "Allow allocating large blocks (> 1MB) of memory" | ||
107 | help | ||
108 | Allow the slab memory allocator to keep chains for very large memory | ||
109 | sizes - up to 32MB. You may need this if your system has a lot of | ||
110 | RAM, and you need to able to allocate very large contiguous chunks. | ||
111 | If unsure, say N. | ||
112 | |||
113 | source "mm/Kconfig" | 105 | source "mm/Kconfig" |
114 | 106 | ||
115 | choice | 107 | choice |
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig index 823f73736bb5..adc64a2bafbb 100644 --- a/arch/m68knommu/Kconfig +++ b/arch/m68knommu/Kconfig | |||
@@ -470,14 +470,6 @@ config AVNET | |||
470 | default y | 470 | default y |
471 | depends on (AVNET5282) | 471 | depends on (AVNET5282) |
472 | 472 | ||
473 | config LARGE_ALLOCS | ||
474 | bool "Allow allocating large blocks (> 1MB) of memory" | ||
475 | help | ||
476 | Allow the slab memory allocator to keep chains for very large | ||
477 | memory sizes - upto 32MB. You may need this if your system has | ||
478 | a lot of RAM, and you need to able to allocate very large | ||
479 | contiguous chunks. If unsure, say N. | ||
480 | |||
481 | config 4KSTACKS | 473 | config 4KSTACKS |
482 | bool "Use 4Kb for kernel stacks instead of 8Kb" | 474 | bool "Use 4Kb for kernel stacks instead of 8Kb" |
483 | default y | 475 | default y |
diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig index 5f54c1236c18..ace479ab273f 100644 --- a/arch/v850/Kconfig +++ b/arch/v850/Kconfig | |||
@@ -240,14 +240,6 @@ menu "Processor type and features" | |||
240 | config RESET_GUARD | 240 | config RESET_GUARD |
241 | bool "Reset Guard" | 241 | bool "Reset Guard" |
242 | 242 | ||
243 | config LARGE_ALLOCS | ||
244 | bool "Allow allocating large blocks (> 1MB) of memory" | ||
245 | help | ||
246 | Allow the slab memory allocator to keep chains for very large | ||
247 | memory sizes - upto 32MB. You may need this if your system has | ||
248 | a lot of RAM, and you need to able to allocate very large | ||
249 | contiguous chunks. If unsure, say N. | ||
250 | |||
251 | source "mm/Kconfig" | 243 | source "mm/Kconfig" |
252 | 244 | ||
253 | endmenu | 245 | endmenu |