* [LTP] [PATCH v2] mmap22: Bound child memory allocation to avoid OOM
@ 2026-11-05 8:02 Attila Fazekas via ltp
2026-11-05 11:24 ` Cyril Hrubis
2026-11-05 15:54 ` [LTP] " linuxtestproject.agent
0 siblings, 2 replies; 3+ messages in thread
From: Attila Fazekas via ltp @ 2026-11-05 8:02 UTC (permalink / raw)
To: ltp; +Cc: Attila Fazekas
Currently, stress_child() allocates memory in an infinite loop without
bounds. Under memory pressure, once the cgroup memory limit is reached
and the parent's droppable pages are reclaimed, the child continues
allocating non-droppable heap memory. This eventually exhausts the cgroup
limit and triggers the cgroup OOM killer, terminating either the child or
the test parent process.
Fix this by bounding the child's allocation to CHILD_ALLOC_MAX.
The total requested memory (128MB parent + 160MB
child = 288MB) exceeds the 256MB cgroup limit by 32MB, which reliably
forces the kernel to reclaim MAP_DROPPABLE pages. Once CHILD_ALLOC_MAX is
reached, the child calls pause() to keep memory resident. Since 160MB is
well below the 256MB cgroup limit, non-droppable memory alone cannot
trigger an OOM.
Assisted-by: Gemini CLI
Signed-off-by: Attila Fazekas <afazekas@redhat.com>
---
testcases/kernel/syscalls/mmap/mmap22.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/testcases/kernel/syscalls/mmap/mmap22.c b/testcases/kernel/syscalls/mmap/mmap22.c
index 0b95c578f..31acefdba 100644
--- a/testcases/kernel/syscalls/mmap/mmap22.c
+++ b/testcases/kernel/syscalls/mmap/mmap22.c
@@ -26,6 +26,7 @@
#define MEM_LIMIT (256 * TST_MB)
#define ALLOC_SIZE (128 * TST_MB)
+#define CHILD_ALLOC_MAX (MEM_LIMIT - ALLOC_SIZE + 32 * TST_MB)
static struct tst_cg_group *cg_child;
static pid_t child;
@@ -33,13 +34,15 @@ static int page_size;
static void stress_child(void)
{
- for (;;) {
+ for (size_t sz = 0; sz < CHILD_ALLOC_MAX; sz += page_size) {
char *buf = malloc(page_size);
if (!buf)
- exit(1);
+ break;
memset(buf, 'B', page_size);
}
+
+ pause();
}
static void test_mmap(void)
--
2.56.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-11-05 15:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-05 8:02 [LTP] [PATCH v2] mmap22: Bound child memory allocation to avoid OOM Attila Fazekas via ltp
2026-11-05 11:24 ` Cyril Hrubis
2026-11-05 15:54 ` [LTP] " linuxtestproject.agent
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.