On Tue, Jun 02, 2020 at 04:15:19PM +0200, Vlastimil Babka wrote: > The attribute reflects the SLAB_RECLAIM_ACCOUNT cache flag. It's not clear why > this attribute was writable in the first place, as it's tied to how the cache > is used by its creator, it's not a user tunable. Furthermore: > > - it affects slab merging, but that's not being checked while toggled > - if affects whether __GFP_RECLAIMABLE flag is used to allocate page, but > the runtime toggle doesn't update allocflags > - it affects cache_vmstat_idx() so runtime toggle might lead to incosistency > of NR_SLAB_RECLAIMABLE and NR_SLAB_UNRECLAIMABLE > > Thus make it read-only. > > Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx> Acked-by: Roman Gushchin <guro@xxxxxx> > --- > mm/slub.c | 11 +---------- > 1 file changed, 1 insertion(+), 10 deletions(-) > > diff --git a/mm/slub.c b/mm/slub.c > index 38dd6f3ebb04..d4a9a097da50 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -5223,16 +5223,7 @@ static ssize_t reclaim_account_show(struct kmem_cache *s, char *buf) > { > return sprintf(buf, "%d\n", !!(s->flags & SLAB_RECLAIM_ACCOUNT)); > } > - > -static ssize_t reclaim_account_store(struct kmem_cache *s, > - const char *buf, size_t length) > -{ > - s->flags &= ~SLAB_RECLAIM_ACCOUNT; > - if (buf[0] == '1') > - s->flags |= SLAB_RECLAIM_ACCOUNT; > - return length; > -} > -SLAB_ATTR(reclaim_account); > +SLAB_ATTR_RO(reclaim_account); > > static ssize_t hwcache_align_show(struct kmem_cache *s, char *buf) > { > -- > 2.26.2 > >