mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
The test_no_invasive_cgroup_shrink selftest checks that when a cgroup has
zswapped out more memory than memory.zswap.max, it does not trigger
writeback for other cgroups. To do this, it compares the writeback count
in a control cgroup and makes sure that it is 0, and then checks the
writeback count in an aggressor cgroup who does expect to see writeback.
However, when the zswap shrinker is enabled, the victim cgroup can see
legitimate writebacks not triggered by the aggressor. In some Meta CI
tests, we have seen this failure mode happen.
Instead of checking that the victim cgroup has 0 writeback, compare the
writeback values before and after the aggressor runs and check that the
victim cgroup did not perform any additional writeback. Note that this
can still lead to probabilistic failures if writebacks take longer than
5 seconds, but this should fix the systematic failure case and make
"not ok test_no_invasive_cgroup_shrink" less likely.
Link: https://lore.kernel.org/20260902194521.3652178-1-joshua.hahnjy@gmail.com
Fixes:
|
||
|---|---|---|
| .. | ||
| lib | ||
| .gitignore | ||
| config | ||
| Makefile | ||
| memcg_protection.m | ||
| test_core.c | ||
| test_cpu.c | ||
| test_cpuset_prs.sh | ||
| test_cpuset_v1_base.sh | ||
| test_cpuset_v1_hp.sh | ||
| test_cpuset.c | ||
| test_freezer.c | ||
| test_hugetlb_memcg.c | ||
| test_kill.c | ||
| test_kmem.c | ||
| test_memcontrol.c | ||
| test_pids.c | ||
| test_stress.sh | ||
| test_zswap.c | ||
| wait_inotify.c | ||
| with_stress.sh | ||