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-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.