Re: [PATCH] mm/memcontrol: Skip root memcg in memcg_memory_event_mm

From: Haifeng Xu
Date: Fri Dec 16 2022 - 02:51:00 EST




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.

Shoud I add the CFTYPE_NOT_ON_ROOT flag for cgroup v1?