On Thu, Feb 2, 2023 at 12:27 AM Michal Hocko <mhocko@xxxxxxxx> wrote: > > On Thu 02-02-23 12:32:57, zhaoyang.huang wrote: > > From: Zhaoyang Huang <zhaoyang.huang@xxxxxxxxxx> > > > > Introducing memory.root_current for the memory charges on root_mem_cgroup. > > Charges are not currently accounted for the root memcg universally. See > try_charge which is used for all user space and skmem charges. I am not > 100% sure about objcg based accounting because there is no explicit > check for the root memcg but this might be hidden somewhere as well. Yes in __get_obj_cgroup_from_memcg(). However the reason to use try_charge_memcg() to bypass root check was to avoid the race with reparenting. More details in c5c8b16b596e ("mm: memcontrol: fix root_mem_cgroup charging"). > > That means that the patch as is doesn't really provide and usable value. > The root exemption has been removed in the past but that has been > reverted due to a regression. See ce00a967377b ("mm: memcontrol: revert > use of root_mem_cgroup res_counter") for more. > One advantage I can see is if someone is looking for usage for all top containers (alive or zombie) but I wanted to know if that was the real motivation behind the patch.