All of 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 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.