summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorNick Piggin <nickpiggin@yahoo.com.au>2007-05-17 07:10:49 +0200
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-17 14:23:02 +0200
commitafc0cedbe9138e3e8b38bfa1e4dfd01a2c537d62 (patch)
tree0df03f95645ef76a387dd541da062b682319c921 /init
parentMerge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/... (diff)
downloadlinux-afc0cedbe9138e3e8b38bfa1e4dfd01a2c537d62.tar.xz
linux-afc0cedbe9138e3e8b38bfa1e4dfd01a2c537d62.zip
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 <npiggin@suse.de> Acked-by: Matt Mackall <mpm@selenic.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig7
1 files changed, 2 insertions, 5 deletions
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.