From: Chris Li <chrisl@kernel.org>
To: Shakeel Butt <shakeel.butt@linux.dev>
Cc: SeongJae Park <sj@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Chengming Zhou <chengming.zhou@linux.dev>,
David Hildenbrand <david@redhat.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Nhat Pham <nphamcs@gmail.com>,
Yosry Ahmed <yosry.ahmed@linux.dev>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Takero Funaki <flintglass@gmail.com>,
Hugh Dickins <hughd@google.com>
Subject: Re: [PATCH v2] mm/zswap: store <PAGE_SIZE compression failed page as-is
Date: Fri, 15 Aug 2025 15:42:28 -0700 [thread overview]
Message-ID: <CAF8kJuNRTTaFxa7fOJi-4QcQfb2ydvfnQVz1_3fKmo-v__qGsg@mail.gmail.com> (raw)
In-Reply-To: <uo6vtumoy4txklyqy4njitf5ex4eanudncicbbzknmuowopd7v@jm4ao4qapiza>
On Wed, Aug 13, 2025 at 12:42 PM Shakeel Butt <shakeel.butt@linux.dev> wrote:
>
> On Wed, Aug 13, 2025 at 10:07:18AM -0700, Chris Li wrote:
> >
> > If you store uncompressed data in the zpool, zpool has metadata
> > overhead, e.g. allocating the entry->handle for uncompressed pages.
> > If the page is not compressed, another idea is just skip the zpool,
> > store it as a page in the zswap entry as page. We can make a union of
> > entry->handle and entry->incompressble_page. If entry->length ==
> > PAGE_SIZE, use entry->incompressable_page as a page.
>
> The main problem being solved here is to avoid the scenario where the
> incompressible pages are being rotated in LRUs and zswapped multiple
> times and wasting CPU on compressing incompressible pages. SJ's approach
> solves the issue but with some memory overhead (zswap entry). With your
> suggestion and to solve the mentioned issue, we will need to change some
> core parts of reclaim (__remove_mapping()), LRU handling (swap cache
> pages not in LRUs) and refault (putting such pages back in LRU and
No, that is not what I have in mind. I mean store a separate page and
memcpy into it, keep the swap cache folio still reclaimed as normal.
Not much different from a store in the zpool.
The cons really are migration etc. We might have to get it in zsmalloc later.
> should it handle read and write faults differently). So, the cons of
> that approach is more complex code.
>
> Personally I would prefer a simple solution with some overhead over a
> more complicated and error prone solution without overhead. Or maybe you
> have a more simplied approach instead?
Ack, there is more complexity to get the last bit of performance gain.
Maybe in zsmalloc later.
Chris
next prev parent reply other threads:[~2025-08-15 22:42 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-12 17:00 SeongJae Park
2025-08-12 18:52 ` Nhat Pham
2025-08-13 17:07 ` Chris Li
2025-08-13 18:20 ` SeongJae Park
2025-08-15 22:28 ` Chris Li
2025-08-15 23:08 ` Nhat Pham
2025-08-16 0:14 ` SeongJae Park
2025-08-16 2:23 ` Chris Li
2025-08-18 18:18 ` SeongJae Park
2025-08-18 20:33 ` Chris Li
2025-08-16 0:30 ` Chris Li
2025-08-16 0:07 ` SeongJae Park
2025-08-16 2:20 ` Chris Li
2025-08-13 18:32 ` Nhat Pham
2025-08-15 22:34 ` Chris Li
2025-08-15 22:44 ` Nhat Pham
2025-08-13 18:58 ` Hugh Dickins
2025-08-15 22:38 ` Chris Li
2025-08-13 19:42 ` Shakeel Butt
2025-08-13 20:48 ` Johannes Weiner
2025-08-15 22:44 ` Chris Li
2025-08-15 22:42 ` Chris Li [this message]
2025-08-14 16:23 ` Johannes Weiner
2025-08-14 17:04 ` SeongJae Park
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=CAF8kJuNRTTaFxa7fOJi-4QcQfb2ydvfnQVz1_3fKmo-v__qGsg@mail.gmail.com \
--to=chrisl@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=chengming.zhou@linux.dev \
--cc=david@redhat.com \
--cc=flintglass@gmail.com \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nphamcs@gmail.com \
--cc=shakeel.butt@linux.dev \
--cc=sj@kernel.org \
--cc=yosry.ahmed@linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox