Re: [PATCH v2 1/2] selftests/cgroup: test_zswap: wait for cgroup to unpopulate in test_zswap_writeback
Michal Koutný <[email protected]>
| Newsgroups | org.kvack.linux-mm,org.kernel.vger.cgroups,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Aug 24, 2026 at 03:33:57AM +0000, Wilson Felipe Pereira <[email protected]> wrote: > When running test_zswap on a single-core VM (-smp 1) with 4GB of RAM, > test_zswap_writeback intermittently fails on the initial run after boot. > > In test_zswap_writeback(), after waitpid() reaps the child process created > by test_zswap_writeback_one(), writing "+memory" to cgroup.subtree_control > can fail with -EBUSY. Under cgroup v2, enabling domain subtree controllers > is forbidden while any tasks remain in cgroup.procs. > > When a child process exits, exit_notify() wakes the parent process, > allowing waitpid() to return immediately. However, the cgroup populated > task count (nr_populated_csets) is only decremented when the exiting > task is switched away via finish_task_switch() -> cgroup_task_dead(). On > single-core systems, the parent runs before the dead child has been > switched out, causing "+memory" to fail with -EBUSY if written immediately > after waitpid() returns. > > Fix this by waiting for cgroup.events to report "populated 0\n" via > cg_read_strcmp_wait() before enabling subtree control. > > Signed-off-by: Wilson Felipe Pereira <[email protected]> > --- > tools/testing/selftests/cgroup/test_zswap.c | 2 ++ > 1 file changed, 2 insertions(+) Acked-by: Michal Koutný <[email protected]>
signature.asc
(application/pgp-signature, 265 B)
-----BEGIN PGP SIGNATURE----- iJEEABYKADkWIQRCE24Fn/AcRjnLivR+PQLnlNv4CAUCaow65hsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDIACgkQfj0C55Tb+Ai0QAD9GkXMc6bI0AhzKJwbSaqE aI4XwcIv1S0SkdLiNbkxuPMA/3XaRn1ZHXQ5i2Jrq1+ppT0VNUvfWl9IlFN0Wc/x KzEA =DvGz -----END PGP SIGNATURE-----