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

From: Andrew Morton
Date: Mon Oct 07 2024 - 22:15:42 EST


On Tue, 8 Oct 2024 09:56:35 +0800 Jingxiang Zeng <jingxiangzeng.cas@xxxxxxxxx> wrote:

> From: Jingxiang Zeng <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:
>
> ...
>
> 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 for persisting.

This patch has a somewhat difficult past and not a lot of review.
I'll await feedback from other MGLRU developers before proceeding.