+CC Mel who added that code (long time ago though :) in case he remembers some catch. On 10/18/2017 12:30 AM, David Rientjes wrote: > 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. > > Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx> Seems correct to me, and SLUB does that this way too, since the beginning. Acked-by: Vlastimil Babka <vbabka@xxxxxxx> > --- > mm/slab.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/slab.c b/mm/slab.c > --- a/mm/slab.c > +++ b/mm/slab.c > @@ -1409,8 +1409,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) { > @@ -2143,6 +2141,8 @@ __kmem_cache_create (struct kmem_cache *cachep, unsigned long flags) > 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); > > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@xxxxxxxxx. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>