Messages in this thread | | | Date | Fri, 16 Dec 2022 16:37:49 +0800 | Subject | Re: [PATCH] mm/memcontrol: Skip root memcg in memcg_memory_event_mm | From | Haifeng Xu <> |
| |
On 2022/12/16 16:17, Shakeel Butt wrote: > On Fri, Dec 16, 2022 at 03:50:49PM +0800, Haifeng Xu wrote: >> >> >> On 2022/12/16 15:36, Shakeel Butt wrote: >>> On Fri, Dec 16, 2022 at 03:28:53PM +0800, Haifeng Xu wrote: >>>> >>>> >>>> On 2022/12/16 14:42, Shakeel Butt wrote: >>>>> On Fri, Dec 16, 2022 at 09:43:02AM +0800, Haifeng Xu wrote: >>>>>> >>>>>> >>>>>> On 2022/12/16 02:18, Shakeel Butt wrote: >>>>>>> On Thu, Dec 15, 2022 at 09:19:07AM +0000, Haifeng Xu wrote: >>>>>>>> The memory events aren't supported on root cgroup, so there is no need >>>>>>>> to account MEMCG_OOM_KILL on root memcg. >>>>>>>> >>>>>>> >>>>>>> Can you explain the scenario where this is happening and causing issue >>>>>>> for you? >>>>>>> >>>>>> If the victim selected by oom killer belongs to root memcg, memcg_memory_event_mm >>>>>> still counts the MEMCG_OOM_KILL event. This behavior is meaningless because the >>>>>> flag of events/events.local in memory_files is CFTYPE_NOT_ON_ROOT. The root memcg >>>>>> does not count any memory event. >>>>>> >>>>> >>>>> What about v1's memory.oom_control? >>>>> >>>> >>>> The memory.oom_control doesn't set the CFTYPE_NOT_ON_ROOT flag. But oom_kill_disable or >>>> under_oom actually only support non-root memcg, so the memory_events should be consistent >>>> with them. >>> >>> Did you take a look at mem_cgroup_oom_control_read()? It is displaying >>> MEMCG_OOM_KILL for root memcg. Irrespective it makes sense or not, you >>> want to change behavior of user visible interface. If you really want to >>> then propose for the deprecation of that interface. >> >> Yes, I have see it in mem_cgroup_oom_control_read() and I think that >> showing MEMCG_OOM_KILL for root memcg doesn't make much sense. >> > > It doesn't matter as there might already be users using it. > >> Shoud I add the CFTYPE_NOT_ON_ROOT flag for cgroup v1? >> > > Before doing anything, I am still not seeing why we really need this > patch? What exactly is the issue this patch is trying to solve? To me > this patch is negatively impacting the readability of the code. Unless > you are seeing some real production issues, I don't think we need to add > any special casing for MEMCG_OOM_KILL here.
As we can see in memcg_memory_event(), memory event never be count in root memcg. Passing the root memcg to it seems somewhat self-contradictory. Also, cgroup v2 doesn't need this.
| |