linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: YoungJun Park <youngjun.park@lge.com>
Cc: linux-mm@kvack.org, akpm@linux-foundation.org, chrisl@kernel.org,
	kasong@tencent.com, shikemeng@huaweicloud.com, nphamcs@gmail.com,
	baohua@kernel.org
Subject: Re: [PATCH 0/3] mm/swap: use swap_ops to register swap device's methods
Date: Thu, 5 Mar 2026 13:18:27 +0800	[thread overview]
Message-ID: <aakSI_0O0G6arjZO@MiWiFi-R3L-srv> (raw)
In-Reply-To: <aaWiBaeSCILBCzqd@yjaykim-PowerEdge-T330>

On 03/02/26 at 11:43pm, YoungJun Park wrote:
> On Mon, Mar 02, 2026 at 06:40:13PM +0800, Baoquan He wrote:
> > This can simplify the code logic and benefit any new type of swap device
> > added later.
> > 
> > And also do renaming in this patchset:
> > -------
> >    file renaming:
> >    ---
> >    mm/page_io.c to mm/swap_io.c
> > 
> >    function renaming:
> >    ---
> >    swap_writepage_* to swap_write_folio_* in file mm/swap_io.c 
> > 
> > 
> > Baoquan He (3):
> >   mm/swap: rename mm/page_io.c to mm/swap_io.c
> >   mm/swap: use swap_ops to register swap device's methods
> >   mm/swap_io.c: rename swap_writepage_* to swap_write_folio_*
> > 
> >  MAINTAINERS                 |   2 +-
> >  include/linux/swap.h        |  13 +++++
> >  mm/Makefile                 |   2 +-
> >  mm/swap.h                   |   3 +-
> >  mm/{page_io.c => swap_io.c} | 104 +++++++++++++++++++++---------------
> >  mm/swapfile.c               |   2 +
> >  mm/zswap.c                  |   3 +-
> >  7 files changed, 80 insertions(+), 49 deletions(-)
> >  rename mm/{page_io.c => swap_io.c} (91%)
> > 
> > -- 
> > 2.52.0
> 
> Hi Baoquan,
> 
> Thank you for the swap_ops infrastructure patch. This is very
> relevant to our flash swap work, and I believe it could
> significantly help with our future contributions if the framework
> is extended further.
> 
> As I understand it, the current patch serves as a foundation for
> future infrastructure. However, from our perspective, the swap ops
> are currently configured statically, and we would need a way to
> apply or register custom ops for our use case.

Thanks a lot for your input about the future potential use cases of
swap_ops, they are very valuable.

Yes, this patchset is posted as a infrastructure of swap_ops and a
thread where we collect any potential extention or use case. The
change is made based on the current kernel.

> 
> I have a few suggestions (mixed with questions) regarding
> extensibility.
> 
> 1) Could the ops be replaced at activation time, similar to how
>    SWP_FS_OPS works — i.e., giving block device drivers an
>    opportunity to override the ops when the swap device is
>    activated?
> 
>    This would allow block devices to handle swap read/write
>    through swap_ops rather than doing it in submit_bio, which
>    feels more generalized and leaves room for future extension.
> 
>    This direction would be the best fit for our use case.
>    However, considering ongoing swap work that may involve
>    managing multiple swap devices, I wonder whether binding ops
>    to a single block device would still be appropriate in that
>    scenario.

I think it's doable and make swap_ops more flexible and versatile to
support different swap back ends.

As for binding ops to a swap devices conflicting with managing multiple
swap devices, I may not get your point very clearly. Could you give a
concrete use case to demonstrate?

> 
> 2) Would it be possible to defer swap device activation via a
>    lazy registration interface, so that the ops can be registered
>    before the device is fully activated?
> 
>    This would open the door for entities other than block
>    devices — such as kernel modules or other forms — to act as
>    swap backends. (Of course, block devices could also benefit
>    from this path.)

Yes, I think it's doable. I will make change and send a draft to you for 
evaluation. By the way, do you have actual use case in which deferring
swap activation is needed for justification?

> 
> 3) Alternatively, are there any plans for a static binding
>    mechanism, or any other extensibility approach you have in
>    mind?
> 
> As an additional thought, if this ops framework could eventually
> be extended to cover cluster allocation as well, it might enable
> a model where base swap functionality is provided by the core,
> while each vendor can freely plug in their own additional use
> cases on top — making the swap device truly extensible.

Yes, this is planned task as I have mentioned in the LSF/MM topic mail.


> 
> Any thoughts on these would be greatly appreciated.
> 
> Best regards,
> Youngjun Park 
> 



  reply	other threads:[~2026-03-05  5:18 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-02 10:40 Baoquan He
2026-03-02 10:40 ` [PATCH 1/3] mm/swap: rename mm/page_io.c to mm/swap_io.c Baoquan He
2026-03-02 10:56   ` Barry Song
2026-03-02 13:25     ` Baoquan He
2026-03-02 21:12   ` Nhat Pham
2026-03-03  7:24     ` Baoquan He
2026-03-04  6:40   ` Kairui Song
2026-03-02 10:40 ` [PATCH 2/3] mm/swap: use swap_ops to register swap device's methods Baoquan He
2026-03-02 11:11   ` Barry Song
2026-03-02 14:47     ` Baoquan He
2026-03-02 19:28     ` Chris Li
2026-03-02 12:20   ` YoungJun Park
2026-03-02 14:09   ` YoungJun Park
2026-03-02 19:35     ` Chris Li
2026-03-03  7:14       ` Baoquan He
2026-03-02 14:53   ` Usama Arif
2026-03-03 10:41     ` Baoquan He
2026-03-02 21:21   ` Nhat Pham
2026-03-03  3:01     ` Baoquan He
2026-03-02 10:40 ` [PATCH 3/3] mm/swap_io.c: rename swap_writepage_* to swap_write_folio_* Baoquan He
2026-03-02 11:28   ` Barry Song
2026-03-02 21:11   ` Nhat Pham
2026-03-02 14:43 ` [PATCH 0/3] mm/swap: use swap_ops to register swap device's methods YoungJun Park
2026-03-05  5:18   ` Baoquan He [this message]
2026-03-05  8:09     ` YoungJun 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=aakSI_0O0G6arjZO@MiWiFi-R3L-srv \
    --to=bhe@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=chrisl@kernel.org \
    --cc=kasong@tencent.com \
    --cc=linux-mm@kvack.org \
    --cc=nphamcs@gmail.com \
    --cc=shikemeng@huaweicloud.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox