Re: [PATCH] memcg: enable memcg oom-kill for __GFP_NOFAIL
From: David Rientjes
Date: Thu Feb 25 2021 - 16:37:00 EST
On 2021年2月23日, Shakeel Butt wrote:
>
In the era of async memcg oom-killer, the commit a0d8b00a3381 ("mm:
>
memcg: do not declare OOM from __GFP_NOFAIL allocations") added the code
>
to skip memcg oom-killer for __GFP_NOFAIL allocations. The reason was
>
that the __GFP_NOFAIL callers will not enter aync oom synchronization
>
path and will keep the task marked as in memcg oom. At that time the
>
tasks marked in memcg oom can bypass the memcg limits and the oom
>
synchronization would have happened later in the later userspace
>
triggered page fault. Thus letting the task marked as under memcg oom
>
bypass the memcg limit for arbitrary time.
>
>
With the synchronous memcg oom-killer (commit 29ef680ae7c21 ("memcg,
>
oom: move out_of_memory back to the charge path")) and not letting the
>
task marked under memcg oom to bypass the memcg limits (commit
>
1f14c1ac19aa4 ("mm: memcg: do not allow task about to OOM kill to bypass
>
the limit")), we can again allow __GFP_NOFAIL allocations to trigger
>
memcg oom-kill. This will make memcg oom behavior closer to page
>
allocator oom behavior.
>
>
Signed-off-by: Shakeel Butt <shakeelb@xxxxxxxxxx>
Acked-by: David Rientjes <rientjes@xxxxxxxxxx>