On Sun, May 22, 2022 at 12:38 AM Vasily Averin <vvs@xxxxxxxxxx> wrote: > > Creation of each memory cgroup allocates few huge objects in > mem_cgroup_css_alloc(). Its size exceeds the size of memory > accounted in common part of cgroup creation: > > common part: ~11Kb + 318 bytes percpu > memcg: ~17Kb + 4692 bytes percpu > > memory: > ------ > Allocs Alloc $1*$2 Sum Allocation > number size > -------------------------------------------- > 1 + 8192 8192 8192 (mem_cgroup_css_alloc+0x4a) <NB > 14 ~ 352 4928 13120 KERNFS > 1 + 2048 2048 15168 (mem_cgroup_css_alloc+0xdd) <NB > 1 1024 1024 16192 (alloc_shrinker_info+0x79) > 1 584 584 16776 (radix_tree_node_alloc.constprop.0+0x89) > 2 64 128 16904 (percpu_ref_init+0x6a) > 1 64 64 16968 (mem_cgroup_css_online+0x32) > > 1 = 3684 3684 3684 call_site=mem_cgroup_css_alloc+0x9e > 1 = 984 984 4668 call_site=mem_cgroup_css_alloc+0xfd > 2 12 24 4692 call_site=percpu_ref_init+0x23 > > '=' -- already accounted, > '+' -- to be accounted, > '~' -- partially accounted > > Accounting for this memory helps to avoid misuse inside memcg-limited > contianers. > > Signed-off-by: Vasily Averin <vvs@xxxxxxxxxx> Reviewed-by: Muchun Song <songmuchun@xxxxxxxxxxxxx>