Cmnt: [SRU][N/O/P][PATCH 0/1] MGLRU: page allocation failure on NUMA-enabled systems

Koichiro Den koichiro.den at canonical.com
Wed Feb 12 04:37:11 UTC 2025


On Sun, Feb 02, 2025 at 12:21:50PM GMT, Heitor Alves de Siqueira wrote:
> BugLink: https://bugs.launchpad.net/bugs/2097214
> 
> [Impact]
>  * On MGLRU-enabled systems, high memory pressure on NUMA nodes will cause page
>    allocation failures
>  * This happens due to page reclaim not waking up flusher threads
>  * OOM can be triggered even if the system has enough available memory
> 
> [Test Plan]
>  * For the bug to properly trigger, we should uninstall apport and use the
>    attached alloc_and_crash.c reproducer
>  * alloc_and_crash will mmap a huge range of memory, memset it and forcibly SEGFAULT
>  * The attached bash script will membind alloc_and_crash to NUMA node 0, so we
>    can see the allocation failures in dmesg
>    $ sudo apt remove --purge apport
>    $ sudo dmesg -c; ./lp2097214-repro.sh; sleep 2; sudo dmesg

I looked over the attached files (alloc_and_crash.c and lp2097214-repro.sh).

Question:
Did you use them to reproduce the issue that you want to resolve here?
Also, did you confirm that the issue was resolved after applying the patch
for Noble/Oracular/Plucky? It seems to me that it's just stressing lru
list for ANON, not FILE.

> 
> [Fix]
>  * The upstream patch wakes up flusher threads if there are too many dirty
>    entries in the coldest LRU generation
>  * This happens when trying to shrink lruvecs, so reclaim only gets woken up
>    during high memory pressure
>  * Fix was introduced by commit:
>      1bc542c6a0d1 mm/vmscan: wake up flushers conditionally to avoid cgroup OOM
> 
> [Regression Potential]
>  * This commit fixes the memory reclaim path, so regressions would likely show
>    up during increased system memory pressure
>  * According to the upstream patch, increased SSD/disk wearing is possible due
>    to waking up flusher threads, although these have not been noted in testing
> 
> Zeng Jingxiang (1):
>   mm/vmscan: wake up flushers conditionally to avoid cgroup OOM
> 
>  mm/vmscan.c | 25 ++++++++++++++++++++++---
>  1 file changed, 22 insertions(+), 3 deletions(-)
> 
> -- 
> 2.48.1
> 
> 
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team



More information about the kernel-team mailing list