Skip to content

Commit

Permalink
Avoid double memclear() in SLOB/SLUB
Browse files Browse the repository at this point in the history
Both slob and slub react to __GFP_ZERO by clearing the allocation, which
means that passing the GFP_ZERO bit down to the page allocator is just
wasteful and pointless.

Acked-by: Matt Mackall <mpm@selenic.com>
Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Linus Torvalds committed Dec 9, 2007
1 parent 94545ba commit 7fd2725
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
2 changes: 1 addition & 1 deletion mm/slob.c
Expand Up @@ -330,7 +330,7 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)

/* Not enough space: must allocate a new page */
if (!b) {
b = slob_new_page(gfp, 0, node);
b = slob_new_page(gfp & ~__GFP_ZERO, 0, node);
if (!b)
return 0;
sp = (struct slob_page *)virt_to_page(b);
Expand Down
3 changes: 3 additions & 0 deletions mm/slub.c
Expand Up @@ -1468,6 +1468,9 @@ static void *__slab_alloc(struct kmem_cache *s,
void **object;
struct page *new;

/* We handle __GFP_ZERO in the caller */
gfpflags &= ~__GFP_ZERO;

if (!c->page)
goto new_slab;

Expand Down

0 comments on commit 7fd2725

Please sign in to comment.