From: Li Wang <liwang@redhat.com>
To: Yosry Ahmed <yosry@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
longman@redhat.com, yosryahmed@google.com, nphamcs@gmail.com,
hannes@cmpxchg.org, mhocko@kernel.org, mkoutny@suse.com,
muchun.song@linux.dev, tj@kernel.org, roman.gushchin@linux.dev,
shakeel.butt@linux.dev, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v4 0/7] selftests/cgroup: improve zswap tests robustness and support large page sizes
Date: Tue, 24 Mar 2026 20:16:47 +0800 [thread overview]
Message-ID: <acKAr0TYzuYPxH4A@redhat.com> (raw)
In-Reply-To: <CAO9r8zPxUv5V+VKEBuyacJUsc-UWh7hGc06yNQntY2GcUJLBPw@mail.gmail.com>
On Mon, Mar 23, 2026 at 05:12:27PM -0700, Yosry Ahmed wrote:
> On Sun, Mar 22, 2026 at 8:23 PM Li Wang <liwang@redhat.com> wrote:
> >
> > On Sun, Mar 22, 2026 at 09:18:51AM -0700, Andrew Morton wrote:
> > > On Sun, 22 Mar 2026 14:10:31 +0800 Li Wang <liwang@redhat.com> wrote:
> > >
> > > > This patchset aims to fix various spurious failures and improve the overall
> > > > robustness of the cgroup zswap selftests.
> > >
> > > AI review has questions:
> > > https://sashiko.dev/#/patchset/20260322061038.156146-1-liwang@redhat.com
> >
> > > [Sashiko comments in patch 4/7]
> > > ...
> > > Could we update this loop, along with the identical loops in
> > > alloc_anon_noexit() and alloc_anon_50M_check_swap() shown below, to use
> > > sysconf(_SC_PAGESIZE) instead?
> >
> > I found that Waiman submit another patch that do same thing like this
> > suggestion. I'd consider to merge that one into my patch 4/7.
> >
> > So, let me talk to Waiman first.
>
> Probably fits better in your patch.
>
> > > The test data is generated by writing a single 'a' character per page, leaving
> > > the rest zero-filled:
> >
> > > for (int i = 0; i < control_allocation_size; i += pagesize)
> > > control_allocation[i] = 'a';
> >
> > > This makes the data highly compressible. Because memory.max is set to half of
> > > control_allocation_size, 512 pages are pushed into zswap.
> >
> > > 512 pages of mostly zeros can compress down to roughly 11 to 15 kilobytes
> > > using compressors like zstd, which is well below the 65536 byte (64k)
> > > zswap.max limit on a 64k page system.
> >
> > > Since the limit might not be reached, writeback might never trigger,
> > > causing the test to falsely fail. Should the test use incompressible data
> > > or a lower fixed limit?
> >
> > If Sashiko suggests reducing compressibility, we'd need to fill a significant
> > fraction of each page with varied data, but that would work against the test:
> >
> > zswap would reject poorly compressing pages and send them straight to swap,
> > and memory.stat:zswapped might never reach the threshold the test checks
> > with cg_read_key_long(..., "zswapped") < 1.
> >
> > So, at most I'd keep the data highly compressible and just ensure non-zero,
> > unique-per-page markers.
>
> Sashiko claims that 512 pages will end up consuming 11K to 15K in
> zswap with this setup, do you know what the actual number is?
Not very sure, I guess each 64K page contains 1 byte of 'a' and 65535 bytes
of zero. A single page like that compresses down to roughly 20–30 bytes
(a short literal plus a very long zero run, plus frame/header overhead).
So the estimate is roughly 512 × 25 bytes ≈ 12.8 KB, which is where the
"11 to 15 kilobytes" ballpark comes from.
> Especially with different compressors? If it's close to 64K, this
> might be a problem.
Yes, good point, when I swith to use 'zstd' compressor, it doesn't work.
> Maybe we can fill half of each page with increasing values? It should
> still be compressible but not too compressible.
I tried, this method works on Lzo algorithm but not Zstd.
Anyway, I am still investigating.
--
Regards,
Li Wang
next prev parent reply other threads:[~2026-03-24 12:16 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-22 6:10 [PATCH v4 0/7] selftests/cgroup: improve zswap tests robustness and support large page sizes Li Wang
2026-03-22 6:10 ` [PATCH v4 1/7] selftests/cgroup: skip test_zswap if zswap is globally disabled Li Wang
2026-03-24 0:13 ` Yosry Ahmed
2026-03-24 6:46 ` Li Wang
2026-03-27 18:21 ` Nhat Pham
2026-03-22 6:10 ` [PATCH v4 2/7] selftests/cgroup: avoid OOM in test_swapin_nozswap Li Wang
2026-03-22 6:10 ` [PATCH v4 3/7] selftests/cgroup: use runtime page size for zswpin check Li Wang
2026-03-22 6:10 ` [PATCH v4 4/7] selftests/cgroup: rename PAGE_SIZE to BUF_SIZE in cgroup_util Li Wang
2026-03-22 6:10 ` [PATCH v4 5/7] selftests/cgroup: replace hardcoded page size values in test_zswap Li Wang
2026-03-24 0:05 ` Yosry Ahmed
2026-03-22 6:10 ` [PATCH v4 6/7] selftest/cgroup: fix zswap test_no_invasive_cgroup_shrink on large pagesize system Li Wang
2026-03-22 6:10 ` [PATCH v4 7/7] selftest/cgroup: fix zswap attempt_writeback() on 64K " Li Wang
2026-03-22 16:18 ` [PATCH v4 0/7] selftests/cgroup: improve zswap tests robustness and support large page sizes Andrew Morton
2026-03-23 3:23 ` Li Wang
2026-03-24 0:12 ` Yosry Ahmed
2026-03-24 12:16 ` Li Wang [this message]
2026-03-24 20:28 ` Yosry Ahmed
2026-03-25 2:26 ` Li Wang
2026-03-25 2:49 ` Yosry Ahmed
2026-03-25 6:12 ` Li Wang
2026-03-25 6:17 ` Li Wang
2026-03-25 7:21 ` Li Wang
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=acKAr0TYzuYPxH4A@redhat.com \
--to=liwang@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--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=mkoutny@suse.com \
--cc=muchun.song@linux.dev \
--cc=nphamcs@gmail.com \
--cc=roman.gushchin@linux.dev \
--cc=shakeel.butt@linux.dev \
--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.