diff options
author | Pekka Enberg <penberg@cs.helsinki.fi> | 2009-11-25 20:14:48 +0200 |
---|---|---|
committer | Pekka Enberg <penberg@cs.helsinki.fi> | 2009-11-29 09:01:59 +0200 |
commit | 74e2134ff892ee4ea4fbd52637060b71e540faf1 (patch) | |
tree | a0747c885ca2bc04745a77ef4a902d121acbe44f /mm | |
parent | b419148e567728f6af0c3b01965c1cc141e3e13a (diff) | |
download | lwn-74e2134ff892ee4ea4fbd52637060b71e540faf1.tar.gz lwn-74e2134ff892ee4ea4fbd52637060b71e540faf1.zip |
SLUB: Fix __GFP_ZERO unlikely() annotation
The unlikely() annotation in slab_alloc() covers too much of the expression.
It's actually very likely that the object is not NULL so use unlikely() only
for the __GFP_ZERO expression like SLAB does.
The patch reduces kernel text by 29 bytes on x86-64:
text data bss dec hex filename
24185 8560 176 32921 8099 mm/slub.o.orig
24156 8560 176 32892 807c mm/slub.o
Acked-by: Christoph Lameter <cl@linux-foundation.org>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/slub.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/slub.c b/mm/slub.c index 4996fc719552..0956396faed1 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1735,7 +1735,7 @@ static __always_inline void *slab_alloc(struct kmem_cache *s, } local_irq_restore(flags); - if (unlikely((gfpflags & __GFP_ZERO) && object)) + if (unlikely(gfpflags & __GFP_ZERO) && object) memset(object, 0, objsize); kmemcheck_slab_alloc(s, gfpflags, object, c->objsize); |