All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 0/3] [PATCH v7 0/3] mm/swap: use swap_ops to register swap device's methods
@ 2026-05-15  1:57 Baoquan He
  2026-05-15  1:57 ` [PATCH v7 1/3] " Baoquan He
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Baoquan He @ 2026-05-15  1:57 UTC (permalink / raw)
  To: linux-mm
  Cc: akpm, chrisl, usama.arif, baohua, kasong, nphamcs, shikemeng,
	youngjun.park, hch, linux-kernel, Baoquan He

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



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-05-15  5:51 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-15  1:57 [PATCH v7 0/3] [PATCH v7 0/3] mm/swap: use swap_ops to register swap device's methods Baoquan He
2026-05-15  1:57 ` [PATCH v7 1/3] " 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
2026-05-15  5:43     ` Baoquan He
2026-05-15  5:51     ` Baoquan He

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.