On Fri, Apr 24, 2026 at 12:00:59PM +0800, Li Wang <[email protected]> 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);
signature.asc
Description: PGP signature

