[PATCH v9 0/3] mm: clean up folio LRU and swap declarations

From: Jianyue Wu

Date: Wed Jul 08 2026 - 07:44:32 EST


This series splits folio LRU and swap cleanup into three steps:

- move the page-cluster sysctl next to swap readahead in
mm/swap_state.c
- rename mm/swap.c to mm/folio.c after the swap-specific code
moves out
- move MM-internal reclaim declarations out of include/linux/swap.h

After this series, swap cache and swap-in readahead stay in
mm/swap_state.c. Folio LRU helpers live in mm/folio.c, and
MM-internal reclaim/workingset declarations move from
include/linux/swap.h to mm/internal.h (public LRU helpers used outside
mm/ remain in swap.h).

The first patch handles the swap-specific page-cluster state before the
file rename, so the rename commit only carries folio LRU code. The last
patch keeps the LRU helpers used outside mm/ in include/linux/swap.h and
moves the internal reclaim/workingset declarations to mm/internal.h.

Signed-off-by: Jianyue Wu <wujianyue000@xxxxxxxxx>
---
Changes in v9:
- Rebased onto akpm/mm-unstable (d11ba1f57061).
- Drop the unrelated blank line in mm/swap.h.
- Drop the redundant swap_readahead_setup() comment.
- Add Suggested-by Matthew Wilcox on patch 1/3.
- Link to v8: https://lore.kernel.org/r/20260708-ch-swap-series-plus-folio-lru-cleanup-v8-0-e816812698a8@xxxxxxxxx

Changes in v8:
- Rebased onto akpm/mm-unstable (0bfae5663f86).
- Re-tested full build, swap-in readahead smoke test, and
run_vmtests.sh on x86.
- Make swap_readahead_setup() static and remove mm/swap.h export
(including the CONFIG_SWAP=n stub).
- Refactor swap_state.c init: extract swap_sysfs_init(), add
CONFIG_SYSFS=n stub.
- Drop swap_readahead_setup() call from kswapd_init() in vmscan.c.
- Add Reviewed-by Kairui Song on patch 1/3.
- Link to v7: https://lore.kernel.org/r/20260705-ch-swap-series-plus-folio-lru-cleanup-v7-0-a028e8b5fc3d@xxxxxxxxx

Changes in v7:
- Rebased onto akpm/mm-unstable (cfb8731f5396).
- Re-tested full build, swap-in readahead smoke test, and
run_vmtests.sh on x86.
- Move swap_readahead_setup() into swap_init() in swap_state.c.
- Move version-history text below the "---" separator in the
cover letter.
- Add Suggested-by and Acked-by Johannes Weiner on patch 1/3.
- Add Suggested-by Matthew Wilcox on patch 2/3.
- Link to v6: https://lore.kernel.org/r/20260701-ch-swap-series-plus-folio-lru-cleanup-v6-0-d4f648963382@xxxxxxxxx

Changes in v6:
- Rename mm/swap.c to mm/folio.c instead of folio_lru.c.
- Link to v5: https://lore.kernel.org/r/20260630-ch-swap-series-plus-folio-lru-cleanup-v5-0-4627aba8ed1e@xxxxxxxxx

Changes in v5:
- Rebased onto akpm/mm-unstable (81652c5a65d4).
- Fix mm/swap.h for CONFIG_SWAP=n after rebase.
- Tested swap-in readahead on x86 with swap: vm.page-cluster present
and writable, swap in/out under anon memory pressure, page-cluster 0
and 3 paths, no oops in dmesg; run_vmtests.sh passed.
- Link to v4: https://lore.kernel.org/r/20260603-ch-swap-series-plus-folio-lru-cleanup-v4-0-ce0219e100d9@xxxxxxxxx

Changes in v4:
- Address Baoquan He's review on v3: align patch 2 subject with
rename-only scope; fix vm.rst sysctl documentation; refresh file
header comments in mm/folio_lru.c and swap.h declaration comments.
- Expand patch 1 commit message on CONFIG_SWAP=n vm.page-cluster
registration (also on CONFIG_SWAP=n kernels).
- Link to v3: https://lore.kernel.org/all/20260602-ch-swap-series-plus-folio-lru-cleanup-v3-0-5bbb567f8c99@xxxxxxxxx

---
Jianyue Wu (3):
mm/swap: colocate page-cluster sysctl with swap readahead
mm: rename swap.c to folio.c
mm: move reclaim-internal declarations out of swap.h

Documentation/admin-guide/sysctl/vm.rst | 3 --
Documentation/core-api/mm-api.rst | 2 +-
MAINTAINERS | 3 +-
include/linux/swap.h | 76 +++------------------------------
mm/Makefile | 2 +-
mm/{swap.c => folio.c} | 46 ++------------------
mm/internal.h | 67 +++++++++++++++++++++++++++++
mm/memfd.c | 1 +
mm/swap.h | 2 -
mm/swap_state.c | 50 +++++++++++++++++++++-
mm/vmscan.c | 1 -
11 files changed, 129 insertions(+), 124 deletions(-)
---
base-commit: d11ba1f570615ec8d4814d6313ee1d7075a33787
change-id: 20260531-ch-swap-series-plus-folio-lru-cleanup-d9781c8332dc

Best regards,
--
Jianyue Wu <wujianyue000@xxxxxxxxx>