forked from Minki/linux
mm/slab.c: only set __GFP_RECLAIMABLE once
SLAB_RECLAIM_ACCOUNT is a permanent attribute of a slab cache. Set __GFP_RECLAIMABLE as part of its ->allocflags rather than check the cachep flag on every page allocation. Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1710171527560.140898@chino.kir.corp.google.com Signed-off-by: David Rientjes <rientjes@google.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Acked-by: Mel Gorman <mgorman@techsingularity.net> Cc: Christoph Lameter <cl@linux.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9f88faee3f
commit
a3ba074447
@ -1410,8 +1410,6 @@ static struct page *kmem_getpages(struct kmem_cache *cachep, gfp_t flags,
|
||||
int nr_pages;
|
||||
|
||||
flags |= cachep->allocflags;
|
||||
if (cachep->flags & SLAB_RECLAIM_ACCOUNT)
|
||||
flags |= __GFP_RECLAIMABLE;
|
||||
|
||||
page = __alloc_pages_node(nodeid, flags | __GFP_NOTRACK, cachep->gfporder);
|
||||
if (!page) {
|
||||
@ -2144,6 +2142,8 @@ done:
|
||||
cachep->allocflags = __GFP_COMP;
|
||||
if (flags & SLAB_CACHE_DMA)
|
||||
cachep->allocflags |= GFP_DMA;
|
||||
if (flags & SLAB_RECLAIM_ACCOUNT)
|
||||
cachep->allocflags |= __GFP_RECLAIMABLE;
|
||||
cachep->size = size;
|
||||
cachep->reciprocal_buffer_size = reciprocal_value(size);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user