Linux Test Project
 help / color / mirror / Atom feed
* [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

* Re: [LTP] [PATCH v2] mmap22: Bound child memory allocation to avoid OOM
  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
  1 sibling, 0 replies; 3+ messages in thread
From: Cyril Hrubis @ 2026-11-05 11:24 UTC (permalink / raw)
  To: Attila Fazekas; +Cc: ltp

Hi!
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [LTP] mmap22: Bound child memory allocation to avoid OOM
  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 ` linuxtestproject.agent
  1 sibling, 0 replies; 3+ messages in thread
From: linuxtestproject.agent @ 2026-11-05 15:54 UTC (permalink / raw)
  To: Attila Fazekas; +Cc: ltp

Hi Attila,

On Thu Nov 5 09:02:45 2026 +0100, Attila Fazekas <afazekas@redhat.com> wrote:
> mmap22: Bound child memory allocation to avoid OOM

Verdict - Reviewed

---
Note:

The agent can sometimes produce false positives although often its
findings are genuine. If you find issues with the review, please
comment this email or ignore the suggestions.

Regards,
LTP AI Reviewer

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox