Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <baoquan.he@linux.dev>
To: linux-mm@kvack.org
Cc: akpm@linux-foundation.org, chrisl@kernel.org,
	usama.arif@linux.dev, baohua@kernel.org, kasong@tencent.com,
	nphamcs@gmail.com, shikemeng@huaweicloud.com,
	youngjun.park@lge.com, hch@infradead.org,
	linux-kernel@vger.kernel.org, Baoquan He <baoquan.he@linux.dev>
Subject: [PATCH v7 0/3] [PATCH v7 0/3] mm/swap: use swap_ops to register swap device's methods
Date: Fri, 15 May 2026 09:57:34 +0800	[thread overview]
Message-ID: <20260515015737.890994-1-baoquan.he@linux.dev> (raw)

This can simplify the code logic and benefit any new type of swap device
added later.

Patch 2 renames the page_io functions to a consistent
swap_<backend>_<op>_<folio> naming convention. Patch 3 fixes a
leaky abstraction where FS swap unplug bypassed swap_ops, adding
an .unplug callback and dispatcher.

Changlog:
===
v7:
  - Drop the old patch 1 "[PATCH v6 1/3] mm/swap: rename mm/page_io.c
    to mm/swap_io.c" as Christoph suggested.
  - Add the .unplug callback to address Christoph's review about
    the leaky abstraction.
  - Minor cleanups and fixes per review feedback.

-v6:
  - Fix a code bug Kairui found out when reviewing patch in mm/swapfile.c
    in patch 2/3. Has fixed it by moving it to appropriate place and add
    comment to explain.

-v5:
  - Change the return value of init_swap_ops() as -EINVAL as per Chris's
    suggestion and adjust its invocation in swapon() accordingly.
  - Add Chris and Usama's Ack tags.

-v4:
  - Fix a typo opeations -> operations
  - Fix a code bug inside init_swap_ops(). I was taking a change at the
    time, thought the change is trivial, so I only compiled but didn't
    run kernel to test in v3. Now fix it and test passed.
    Thanaks to Usama for catching the above two issues.

-v3:
  - Rename setup_swap_ops() to init_swap_ops() which reflect the function
    behaviour a little better
  - Check if sis->ops, sis->ops->read_folio and sis->ops->write_folio is
    NULL in init_swap_ops(), but not spread them where they are called.
    And once the checking failed, fail swapon immediately. This is
    suggested by Chris.
  - Call init_swap_ops() before setup_swap_extents() invocation. This
    doesn't harm anything and can benefit later adding sis->ops->swap_activate
    method.

-v2:
  - Lots of cleanup for patch 2/3: renaming, moving data
    structures, and using const properly
  - Collected tags from Kairui, Nhat and Barry

-v1:
  - https://lore.kernel.org/linux-mm/20260302104016.163542-1-bhe@redhat.com/

Baoquan He (3):
  mm/swap: use swap_ops to register swap device's methods
  mm/page_io.c: rename page_io functions to consistent naming
  mm/swap: add unplug callback to swap_ops to fix leaky abstraction

 include/linux/swap.h |   3 ++
 mm/page_io.c         | 115 ++++++++++++++++++++++++++-----------------
 mm/swap.h            |  11 ++++-
 mm/swapfile.c        |   9 ++++
 mm/zswap.c           |   2 +-
 5 files changed, 94 insertions(+), 46 deletions(-)

-- 
2.52.0



             reply	other threads:[~2026-05-15  1:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-15  1:57 Baoquan He [this message]
2026-05-15  1:57 ` [PATCH v7 1/3] mm/swap: use swap_ops to register swap device's methods Baoquan He
2026-05-15  1:57 ` [PATCH v7 2/3] mm/page_io.c: rename page_io functions to consistent naming Baoquan He
2026-05-15  1:57 ` [PATCH v7 3/3] mm/swap: add unplug callback to swap_ops to fix leaky abstraction Baoquan He
2026-05-15  4:39   ` Barry Song

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=20260515015737.890994-1-baoquan.he@linux.dev \
    --to=baoquan.he@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=chrisl@kernel.org \
    --cc=hch@infradead.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=usama.arif@linux.dev \
    --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