From: Baoquan He <baoquan.he@linux.dev>
To: Nhat Pham <nphamcs@gmail.com>
Cc: linux-mm@kvack.org, akpm@linux-foundation.org, chrisl@kernel.org,
kasong@tencent.com, shikemeng@huaweicloud.com, baohua@kernel.org,
youngjun.park@lge.com, hannes@cmpxchg.org, yosry@kernel.org,
chengming.zhou@linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH 00/10] mm/swap: ghost swapfile with backend switching via Redirect entries
Date: Wed, 15 Jul 2026 22:19:19 +0800 [thread overview]
Message-ID: <aleW5xL2gYcU_Rl4@MiWiFi-R3L-srv> (raw)
In-Reply-To: <aldtS2S-TXc7ocsH@MiWiFi-R3L-srv>
On 07/15/26 at 07:21pm, Baoquan He wrote:
> Hi Nhat,
>
> On 07/12/26 at 05:02pm, Nhat Pham wrote:
> > On Thu, Jul 9, 2026 at 4:39 AM Baoquan He <baoquan.he@linux.dev> wrote:
> ...snip...
>
> Sorry, I won't reply to each comment individually. I'll just leave
> a summary reply at the end.
>
> > > I think VSS goes beyond solving the "zswap without backing store"
> > > problem — it is fundamentally an architectural restructuring of the
> > > swap subsystem, with virtual swap as a first-class abstraction layered
> > > above physical devices. That is both its strength (comprehensive,
> > > future-proof) and its trade-off (more invasive to existing paths).
> > > I respect that.
> > >
> > > My goal with ghost swap is different: address the immediate pain point
> > > with the smallest possible change to the existing infrastructure. Both
> > > approaches have value, and I hope the community discussion will help
> > > identify the right balance.
> >
> > That's because I believe "zswap without backing store" just by itself
> > is a bit narrow of a problem. It's certainly nice to fix, but it's
> > more of a nuisance - you already have userspace hacks for it (as I
> > mentioned above).
> >
> > The problem I'm trying to solve is to support:
> >
> > 1. Writeback.
> >
> > 2. Dynamicity.
> >
> > 3. Decoupled backends.
> >
> > all of which are motivated by real production issues, not some
> > theoretical problems. I'm concerned that if we only focus on the third
> > goal, we'll dig ourself into a hole that prevents us from solving 1
> > and 2 efficiently down the line.
> >
> > >
> > > Thank you again for the detailed review — it has already clarified
> > > which parts of the design need more thought and documentation, and will
> > > make the next version stronger.
> >
> > I really don't want to be antagonistic, but I hope you'd take the real
> > production pains that we've had (and have tried to communicate in
> > multiple mailing threads, across a timeline of almost 2 years at this
> > point) seriously.
> >
> > Collaborations should go both ways. I've gone out of my way to try to
> > address the concerns of various parties, from spending *multiple
> > weeks* testing and investigating performance regression on zram
> > backend (which my company does not use), to a rewrite/re-design of
> > virtual swap to accommodate parties who wished to opt out of virtual
> > swap for now.
> >
> > I hope you can extend the same good will to our needs :) I've included
> > you (and other swap folks such as Chris and Kairui) in my cc-lists. If
> > you have concerns, you could have commented. Instead, you decided to
> > send a patch series, which is basically just the ghost swapfile, with
> > a bit of afterthought to handle writeback and dynamicity, rather
> > inefficiently (no dedicated per-CPU caching), and not even correctly
> > (the lack of rmap means swapoff / swap-cache-only physical swap slot
> > reclaim is broken).
> >
> > I respect you and Chris very much to assume bad faith, but please work
> > with me rather than against me.
>
> Before I get into the technical discussion, I want to address something
> you raised at the end of your reply — the concern that I'm working
> against you rather than with you. Our paths in MM simply haven't crossed
> much until now. I can't think of reason why I would want to target you
> or your work.
>
> I respect the work you've put into VSS. I did check it. Honestly I am not
> fan of it. In your v2: 2244 insertions, 250 deletions, 15 files touched,
> a new 455-line header (vswap.h). While swap subsystem has just absorbed the
> swap table series. Then another 2200 lines of architectural restructuring
> on top is added. Not sure if anybody raise concern about your solution,
> or anybody suggests other directions.
>
> I posted ghost swap because I saw a concrete, narrow problem that I believed
> could be solved with a small change. It makes decoupling and dynamic
> growth with the minimum possible mechanism. Writeback is explicitly deferred
> — not because it's unimportant, but because it's a separate problem that
> shouldn't block the common case. With my shallow knowledge, it's optimal
> solution to the encountered problem. If you agree, you can change to
Part of above sentence is missing. I meant if you agree on the ghost
solution, you can change to take its way and continue, just add me to
CC. Or we can work together.
> Otherwise, please continue to push virtual swap forward. I'll stop and
> wait.
>
> Thanks
> Baoquan
next prev parent reply other threads:[~2026-07-15 14:19 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-07 8:26 [RFC PATCH 00/10] mm/swap: ghost swapfile with backend switching via Redirect entries Baoquan He
2026-07-07 8:26 ` [RFC PATCH 01/10] mm: ghost swapfile support for zswap Baoquan He
2026-07-07 8:26 ` [RFC PATCH 02/10] mm/swap_table: add Redirect entry encoding for ghost swap backend switching Baoquan He
2026-07-07 8:26 ` [RFC PATCH 03/10] mm/swap: add redirect_xa field and ghost redirect helper declarations Baoquan He
2026-07-07 8:26 ` [RFC PATCH 04/10] mm/swapfile: implement ghost redirect helpers and free-path cascade Baoquan He
2026-07-07 8:26 ` [RFC PATCH 05/10] mm/swap_state: restore Redirect entry when swap cache folio is removed Baoquan He
2026-07-07 8:26 ` [RFC PATCH 06/10] mm/zswap: implement ghost-to-physical writeback for backend switching Baoquan He
2026-07-07 8:26 ` [RFC PATCH 07/10] mm/page_io: forward ghost swap reads to physical device via Redirect Baoquan He
2026-07-07 8:26 ` [RFC PATCH 08/10] mm/swapfile: manage ghost cluster_info via lazy vmalloc Baoquan He
2026-07-07 8:26 ` [RFC PATCH 09/10] mm/swapfile: implement swap_ghost_extend_max() for dynamic growth Baoquan He
2026-07-07 22:36 ` Nhat Pham
2026-07-09 14:52 ` Baoquan He
2026-07-10 1:11 ` Nhat Pham
2026-07-11 9:02 ` Chris Li
2026-07-07 8:26 ` [RFC PATCH 10/10] mm/swapfile: add sysfs interface for ghost swap extension Baoquan He
2026-07-07 8:56 ` [RFC PATCH 00/10] mm/swap: ghost swapfile with backend switching via Redirect entries Baoquan He
2026-07-07 21:23 ` Nhat Pham
2026-07-07 21:25 ` Nhat Pham
2026-07-09 11:38 ` Baoquan He
2026-07-13 0:02 ` Nhat Pham
2026-07-13 17:47 ` Chris Li
2026-07-15 11:21 ` Baoquan He
2026-07-15 14:19 ` Baoquan He [this message]
2026-07-15 16:17 ` Nhat Pham
2026-07-11 8:49 ` Chris Li
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=aleW5xL2gYcU_Rl4@MiWiFi-R3L-srv \
--to=baoquan.he@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=chengming.zhou@linux.dev \
--cc=chrisl@kernel.org \
--cc=hannes@cmpxchg.org \
--cc=kasong@tencent.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nphamcs@gmail.com \
--cc=shikemeng@huaweicloud.com \
--cc=yosry@kernel.org \
--cc=youngjun.park@lge.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.