Re: [PATCH] mm: memcontrol: fix occasional OOMs due to proportional memory.low reclaim
From: Roman Gushchin <hidden>
Date: 2021-08-17 19:45:31
Also in:
cgroups, lkml
From: Roman Gushchin <hidden>
Date: 2021-08-17 19:45:31
Also in:
cgroups, lkml
On Tue, Aug 17, 2021 at 02:05:06PM -0400, Johannes Weiner wrote:
We've noticed occasional OOM killing when memory.low settings are in effect for cgroups. This is unexpected and undesirable as memory.low is supposed to express non-OOMing memory priorities between cgroups. The reason for this is proportional memory.low reclaim. When cgroups are below their memory.low threshold, reclaim passes them over in the first round, and then retries if it couldn't find pages anywhere else. But when cgroups are slighly above their memory.low setting, page scan force is scaled down and diminished in proportion to the overage, to the point where it can cause reclaim to fail as well - only in that case we currently don't retry, and instead trigger OOM. To fix this, hook proportional reclaim into the same retry logic we have in place for when cgroups are skipped entirely. This way if reclaim fails and some cgroups were scanned with dimished pressure, we'll try another full-force cycle before giving up and OOMing. Reported-by: Leon Yang <redacted> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Roman Gushchin <redacted>
I guess it's a stable material, so maybe adding:
Fixes: 9783aa9917f8 ("mm, memcg: proportional memory.{low,min} reclaim")
?
Thanks!