Re: [PATCH mm v2 4/9] memcg: enable accounting for struct simple_xattr

Muchun Song
2022-05-22T06:38:54Z

On Sat, May 21, 2022 at 07:38:11PM +0300, Vasily Averin wrote:
> kernfs nodes are quite small kernel objects, however there are few
> scenarios where it consumes significant piece of all allocated memory:
>
> 1) creating a new netdevice allocates ~50Kb of memory, where ~10Kb
> was allocated for 80+ kernfs nodes.
>
> 2) cgroupv2 mkdir allocates ~60Kb of memory, ~10Kb of them are kernfs
> structures.
>
> 3) Shakeel Butt reports that Google has workloads which create 100s
> of subcontainers and they have observed high system overhead
> without memcg accounting of kernfs.
>
> Usually new kernfs node creates few other objects:
>
> Allocs Alloc Allocation
> number size
> --------------------------------------------
> 1 + 128 (__kernfs_new_node+0x4d) kernfs node
> 1 + 88 (__kernfs_iattrs+0x57) kernfs iattrs
> 1 + 96 (simple_xattr_alloc+0x28) simple_xattr
> 1 32 (simple_xattr_set+0x59)
> 1 8 (__kernfs_new_node+0x30)
>
> '+' -- to be accounted
>
> This patch enables accounting for struct simple_xattr. Size of this
> structure depends on userspace and can grow over 4Kb.
>
> Signed-off-by: Vasily Averin <vvs-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>

Reviewed-by: Muchun Song <songmuchun-EC8Uxl6Npydl57MIdRCFDg@public.gmane.org>