Re: [PATCH] mm/vmscan: wake up flushers conditionally to avoid cgroup OOM

From: Andrew Morton
Date: Fri Aug 30 2024 - 20:38:23 EST


On Thu, 29 Aug 2024 18:25:43 +0800 Jingxiang Zeng <jingxiangzeng.cas@xxxxxxxxx> wrote:

> From: Zeng Jingxiang <linuszeng@xxxxxxxxxxx>
>
> Commit 14aa8b2d5c2e ("mm/mglru: don't sync disk for each aging cycle")
> removed the opportunity to wake up flushers during the MGLRU page
> reclamation process can lead to an increased likelihood of triggering
> OOM when encountering many dirty pages during reclamation on MGLRU.
>
> This leads to premature OOM if there are too many dirty pages in cgroup:
> Killed
>
> ...
>
> The flusher wake up was removed to decrease SSD wearing, but if we are
> seeing all dirty folios at the tail of an LRU, not waking up the flusher
> could lead to thrashing easily. So wake it up when a mem cgroups is
> about to OOM due to dirty caches.

Thanks, I'll queue this for testing and review. Could people please
consider whether we should backport this into -stable kernels.

> MGLRU still suffers OOM issue on latest mm tree, so the test is done
> with another fix merged [1].
>
> Link: https://lore.kernel.org/linux-mm/CAOUHufYi9h0kz5uW3LHHS3ZrVwEq-kKp8S6N-MZUmErNAXoXmw@xxxxxxxxxxxxxx/ [1]

This one is already queued for -stable.