* [LTP] [PATCH] memcg/functional: fix memcg_failcnt intermittent timeout by disabling swap
@ 2026-07-31 1:49 Xuewen Wang
2026-07-31 2:46 ` [LTP] " linuxtestproject.agent
0 siblings, 1 reply; 2+ messages in thread
From: Xuewen Wang @ 2026-07-31 1:49 UTC (permalink / raw)
To: ltp; +Cc: liwang, Xuewen Wang, rpalethorpe
memcg_failcnt.sh tests the memory.failcnt counter by allocating
reclaimable memory (mmap-anon/mmap-file/shm) beyond a tiny cgroup
limit (1 page). It relies on the process being OOM-killed so that
signal_memcg_process()'s wait loop exits.
With swap enabled the kernel usually still OOM-kills the process,
but on arm64 reclaim (swap out) sometimes succeeds instead:
usage_in_bytes stays at the limit and the process keeps running,
so the wait loop times out (TBROK) intermittently.
Example failure on arm64 (kernel 6.6):
memcg_failcnt 2 TBROK: timed out on memory.usage_in_bytes 4096 0 8192
Disable swap around the allocation and re-enable it afterwards,
mirroring what memcg_limit_in_bytes.sh already does for the same
reclaimable memory types.
Signed-off-by: Xuewen Wang <wangxuewen@kylinos.cn>
---
.../controllers/memcg/functional/memcg_failcnt.sh | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/testcases/kernel/controllers/memcg/functional/memcg_failcnt.sh b/testcases/kernel/controllers/memcg/functional/memcg_failcnt.sh
index 3a02d16c2..07d913147 100755
--- a/testcases/kernel/controllers/memcg/functional/memcg_failcnt.sh
+++ b/testcases/kernel/controllers/memcg/functional/memcg_failcnt.sh
@@ -11,11 +11,20 @@
MEMCG_TESTFUNC=do_test
MEMCG_SHMMAX=1
TST_TEST_DATA="--mmap-anon --mmap-file --shm"
+TST_CLEANUP=do_cleanup
+
+do_cleanup()
+{
+ memcg_cleanup
+ swapon -a 2>/dev/null
+}
do_test()
{
ROD echo $MEMORY_LIMIT \> memory.limit_in_bytes
+ swapoff -a 2>/dev/null
+
start_memcg_process $2 -s ${MEMORY_TO_ALLOCATE}
ROD echo $MEMCG_PROCESS_PID \> tasks
@@ -24,6 +33,8 @@ do_test()
stop_memcg_process
+ swapon -a 2>/dev/null
+
failcnt=$(cat memory.failcnt)
if [ $failcnt -gt 0 ]; then
tst_res TPASS "memory.failcnt is $failcnt, > 0 as expected"
--
2.25.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [LTP] memcg/functional: fix memcg_failcnt intermittent timeout by disabling swap
2026-07-31 1:49 [LTP] [PATCH] memcg/functional: fix memcg_failcnt intermittent timeout by disabling swap Xuewen Wang
@ 2026-07-31 2:46 ` linuxtestproject.agent
0 siblings, 0 replies; 2+ messages in thread
From: linuxtestproject.agent @ 2026-07-31 2:46 UTC (permalink / raw)
To: Xuewen Wang; +Cc: ltp
Hi Xuewen,
On Fri, 31 Jul 2026, Xuewen Wang wrote:
> memcg/functional: fix memcg_failcnt intermittent timeout by disabling swap
> + swapoff -a 2>/dev/null
> +
> start_memcg_process $2 -s ${MEMORY_TO_ALLOCATE}
The 2>/dev/null here hides errors from the very command that implements
the fix. If swapoff fails, or the command is not present, swap stays
enabled and the intermittent timeout this patch targets can recur, now
without any diagnostic to explain it.
memcg_limit_in_bytes.sh, cited as the model for this change, runs
swapoff -a and swapon -a without redirecting stderr. Would dropping the
redirect (at least on swapoff) be preferable, so a failure to disable
swap remains visible?
Verdict - Needs revision
---
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] 2+ messages in thread
end of thread, other threads:[~2026-07-31 2:46 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-31 1:49 [LTP] [PATCH] memcg/functional: fix memcg_failcnt intermittent timeout by disabling swap Xuewen Wang
2026-07-31 2:46 ` [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.