From afc0cedbe9138e3e8b38bfa1e4dfd01a2c537d62 Mon Sep 17 00:00:00 2001 From: Nick Piggin Date: Wed, 16 May 2007 22:10:49 -0700 Subject: slob: implement RCU freeing The SLOB allocator should implement SLAB_DESTROY_BY_RCU correctly, because even on UP, RCU freeing semantics are not equivalent to simply freeing immediately. This also allows SLOB to be used on SMP. Signed-off-by: Nick Piggin Acked-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- init/Kconfig | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'init') diff --git a/init/Kconfig b/init/Kconfig index 4e009fde4b69..9264895ab331 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -577,14 +577,11 @@ config SLUB and has enhanced diagnostics. config SLOB -# -# SLOB does not support SMP because SLAB_DESTROY_BY_RCU is unsupported -# - depends on EMBEDDED && !SMP && !SPARSEMEM + depends on EMBEDDED && !SPARSEMEM bool "SLOB (Simple Allocator)" help SLOB replaces the SLAB allocator with a drastically simpler - allocator. SLOB is more space efficient that SLAB but does not + allocator. SLOB is more space efficient than SLAB but does not scale well (single lock for all operations) and is also highly susceptible to fragmentation. SLUB can accomplish a higher object density. It is usually better to use SLUB instead of SLOB. -- cgit v1.2.2 From 9fbf09a09e8aa50c56e2c6dfacc27eff93ff4c93 Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Wed, 16 May 2007 22:10:51 -0700 Subject: SLUB: Remove depends on EXPERIMENTAL and !ARCH_USES_SLAB_PAGE_STRUCT No arch sets ARCH_USES_SLAB_PAGE_STRUCT anymore. Remove the experimental dependency as well since we want to have it as a real alternative to SLAB. It all comes down to killing a single line from init/Kconfig. Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- init/Kconfig | 1 - 1 file changed, 1 deletion(-) (limited to 'init') diff --git a/init/Kconfig b/init/Kconfig index 9264895ab331..a9e99f8328ff 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -567,7 +567,6 @@ config SLAB a slab allocator. config SLUB - depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT bool "SLUB (Unqueued Allocator)" help SLUB is a slab allocator that minimizes cache line usage -- cgit v1.2.2 From 92080309df1975729a9f8b45fd56528817e34db8 Mon Sep 17 00:00:00 2001 From: Sam Ravnborg Date: Thu, 17 May 2007 20:43:54 +0200 Subject: init/main: use __init_refok to fix section mismatch Kill a special case in modpost by introducing the __init_refok marker. Signed-off-by: Sam Ravnborg --- init/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'init') diff --git a/init/main.c b/init/main.c index 1940fa75e82e..eb8bdbae4fc7 100644 --- a/init/main.c +++ b/init/main.c @@ -423,7 +423,7 @@ static void __init setup_command_line(char *command_line) * gcc-3.4 accidentally inlines this function, so use noinline. */ -static void noinline rest_init(void) +static void noinline __init_refok rest_init(void) __releases(kernel_lock) { int pid; -- cgit v1.2.2