All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michal Koutný" <mkoutny@suse.com>
To: Li Wang <li.wang@linux.dev>
Cc: akpm@linux-foundation.org, tj@kernel.org, longman@redhat.com,
	 roman.gushchin@linux.dev, hannes@cmpxchg.org, yosry@kernel.org,
	jiayuan.chen@linux.dev,  nphamcs@gmail.com,
	chengming.zhou@linux.dev, shuah@kernel.org, linux-mm@kvack.org,
	 cgroups@vger.kernel.org, linux-kselftest@vger.kernel.org,
	linux-kernel@vger.kernel.org,  Michal Hocko <mhocko@kernel.org>,
	Muchun Song <muchun.song@linux.dev>,
	 Shakeel Butt <shakeel.butt@linux.dev>,
	Yosry Ahmed <yosryahmed@google.com>
Subject: Re: [PATCH v7 8/8] selftests/cgroup: test_zswap: wait for asynchronous writeback
Date: Wed, 17 Jun 2026 14:26:09 +0200	[thread overview]
Message-ID: <ajKLmjRIjKTNKGTn@localhost.localdomain> (raw)
In-Reply-To: <20260424040059.12940-9-li.wang@linux.dev>

[-- Attachment #1: Type: text/plain, Size: 3193 bytes --]


On Fri, Apr 24, 2026 at 12:00:59PM +0800, Li Wang <li.wang@linux.dev> wrote:
> @@ -345,7 +366,10 @@ static int test_zswap_writeback_one(const char *cgroup, bool wb)
>  		return -1;
>  
>  	/* Verify that zswap writeback occurred only if writeback was enabled */
> -	zswpwb_after = get_cg_wb_count(cgroup);
> +	if (wb)
> +		zswpwb_after = wait_for_writeback(cgroup, 5000);

We should have something like
	cg_read_key_long_poll(cgroup,
	                      "memory.stat",
			      "zswpwb",
			      0,
			      500,
	                      DEFAULT_WAIT_INTERVAL_US);
for this.

Although this also needs further change like (and respective adjustment):

diff --git a/tools/testing/selftests/cgroup/lib/cgroup_util.c b/tools/testing/selftests/cgroup/lib/cgroup_util.c
index a7b3380d88d77..c0511853db9c6 100644
--- a/tools/testing/selftests/cgroup/lib/cgroup_util.c
+++ b/tools/testing/selftests/cgroup/lib/cgroup_util.c
@@ -188,8 +188,8 @@ long cg_read_key_long(const char *cgroup, const char *control, const char *key)
 }

 long cg_read_key_long_poll(const char *cgroup, const char *control,
-                          const char *key, long expected, int retries,
-                          useconds_t wait_interval_us)
+                          const char *key, enum exp_op expected_op, long expected,
+                          int retries, useconds_t wait_interval_us)
 {
        long val = -1;
        int i;
@@ -199,7 +199,9 @@ long cg_read_key_long_poll(const char *cgroup, const char *control,
                if (val < 0)
                        return val;

-               if (val == expected)
+               if (expected_op == EXP_EQUAL && val == expected)
+                       break;
+               if (expected_op == EXP_GT && val > expected)
                        break;

                usleep(wait_interval_us);
diff --git a/tools/testing/selftests/cgroup/lib/include/cgroup_util.h b/tools/testing/selftests/cgroup/lib/include/cgroup_util.h
index 567b1082974c5..3e9bfb66cf5a9 100644
--- a/tools/testing/selftests/cgroup/lib/include/cgroup_util.h
+++ b/tools/testing/selftests/cgroup/lib/include/cgroup_util.h
@@ -19,6 +19,11 @@

 #define DEFAULT_WAIT_INTERVAL_US (100 * 1000) /* 100 ms */

+enum exp_op {
+       EXP_EQUAL,
+       EXP_GT,
+};
+
 /*
  * Checks if two given values differ by less than err% of their sum.
  */
@@ -69,8 +74,8 @@ extern long cg_read_long(const char *cgroup, const char *control);
 extern long cg_read_long_fd(int fd);
 long cg_read_key_long(const char *cgroup, const char *control, const char *key);
 long cg_read_key_long_poll(const char *cgroup, const char *control,
-                          const char *key, long expected, int retries,
-                          useconds_t wait_interval_us);
+                          const char *key, enum exp_op expected_op, long expected,
+                          int retries, useconds_t wait_interval_us);
 extern long cg_read_lc(const char *cgroup, const char *control);
 extern int cg_write(const char *cgroup, const char *control, char *buf);
 extern int cg_open(const char *cgroup, const char *control, int flags);

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 265 bytes --]

  reply	other threads:[~2026-06-17 12:26 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-24  4:00 [PATCH v7 0/8] selftests/cgroup: improve zswap tests robustness and support large page sizes Li Wang
2026-04-24  4:00 ` [PATCH v7 1/8] selftests/cgroup: skip test_zswap if zswap is globally disabled Li Wang
2026-06-17 12:25   ` Michal Koutný
2026-04-24  4:00 ` [PATCH v7 2/8] selftests/cgroup: avoid OOM in test_swapin_nozswap Li Wang
2026-06-17 12:26   ` Michal Koutný
2026-04-24  4:00 ` [PATCH v7 3/8] selftests/cgroup: use runtime page size for zswpin check Li Wang
2026-06-17 12:25   ` Michal Koutný
2026-04-24  4:00 ` [PATCH v7 4/8] selftests/cgroup: rename PAGE_SIZE to BUF_SIZE in cgroup_util Li Wang
     [not found]   ` <20260424051557.8AA6AC19425@smtp.kernel.org>
2026-04-24  6:04     ` Li Wang
2026-06-17 12:26   ` Michal Koutný
2026-04-24  4:00 ` [PATCH v7 5/8] selftests/cgroup: replace hardcoded page size values in test_zswap Li Wang
2026-04-24  5:20   ` Jiayuan Chen
2026-06-17 12:26   ` Michal Koutný
2026-04-24  4:00 ` [PATCH v7 6/8] selftest/cgroup: fix zswap test_no_invasive_cgroup_shrink on large pagesize system Li Wang
2026-06-17 12:27   ` Michal Koutný
2026-04-24  4:00 ` [PATCH v7 7/8] selftest/cgroup: fix zswap attempt_writeback() on 64K " Li Wang
2026-06-17 12:26   ` Michal Koutný
2026-04-24  4:00 ` [PATCH v7 8/8] selftests/cgroup: test_zswap: wait for asynchronous writeback Li Wang
2026-06-17 12:26   ` Michal Koutný [this message]
2026-04-24 10:06 ` [PATCH v7 0/8] selftests/cgroup: improve zswap tests robustness and support large page sizes Andrew Morton
2026-04-24 11:14   ` Li Wang
2026-04-24 13:31 ` Andrew Morton
2026-06-17 12:28 ` Michal Koutný

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ajKLmjRIjKTNKGTn@localhost.localdomain \
    --to=mkoutny@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=cgroups@vger.kernel.org \
    --cc=chengming.zhou@linux.dev \
    --cc=hannes@cmpxchg.org \
    --cc=jiayuan.chen@linux.dev \
    --cc=li.wang@linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=longman@redhat.com \
    --cc=mhocko@kernel.org \
    --cc=muchun.song@linux.dev \
    --cc=nphamcs@gmail.com \
    --cc=roman.gushchin@linux.dev \
    --cc=shakeel.butt@linux.dev \
    --cc=shuah@kernel.org \
    --cc=tj@kernel.org \
    --cc=yosry@kernel.org \
    --cc=yosryahmed@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.