Avoid double memclear() in SLOB/SLUB
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>
This commit is contained in:
parent
94545baded
commit
7fd272550b
2 changed files with 4 additions and 1 deletions
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue