On 6/3/22 05:21, Vasily Averin wrote: > Slab caches marked with SLAB_ACCOUNT force accounting for every > allocation from this cache even if __GFP_ACCOUNT flag is not passed. > Unfortunately, at the moment this flag is not visible in ftrace output, > and this makes it difficult to analyze the accounted allocations. > > This patch adds boolean "accounted" entry into trace output, > and set it to 'true' for calls used __GFP_ACCOUNT flag and > for allocations from caches marked with SLAB_ACCOUNT. > Set it to 'false' if accounting is disabled in configs. > > Signed-off-by: Vasily Averin <vvs@xxxxxxxxxx> > Acked-by: Shakeel Butt <shakeelb@xxxxxxxxxx> > Acked-by: Roman Gushchin <roman.gushchin@xxxxxxxxx> > Acked-by: Muchun Song <songmuchun@xxxxxxxxxxxxx> > Reviewed-by: Hyeonggon Yoo <42.hyeyoo@xxxxxxxxx> Thanks, added to slab/for-5.20/tracing > > --- > v6: > 1) subject changed from "tracing:" to "mm/tracing:" > 2) set flag to 'false' if accounting is disabled in configs Looks like you forgot the kmem_alloc_node variant, fixed up locally: --- a/include/trace/events/kmem.h +++ b/include/trace/events/kmem.h @@ -94,8 +94,9 @@ DECLARE_EVENT_CLASS(kmem_alloc_node, __entry->bytes_alloc = bytes_alloc; __entry->gfp_flags = (__force unsigned long)gfp_flags; __entry->node = node; - __entry->accounted = (gfp_flags & __GFP_ACCOUNT) || - (s && s->flags & SLAB_ACCOUNT); + __entry->accounted = IS_ENABLED(CONFIG_MEMCG_KMEM) ? + ((gfp_flags & __GFP_ACCOUNT) || + (s && s->flags & SLAB_ACCOUNT)) : false; ), TP_printk("call_site=%pS ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d accounted=%s",