Re: [PATCH] mm: move folio LRU helpers out of swap

From: Barry Song

Date: Tue Apr 07 2026 - 22:20:53 EST


On Wed, Apr 8, 2026 at 9:39 AM Baoquan He <bhe@xxxxxxxxxx> wrote:
>
> On 04/07/26 at 10:22am, Johannes Weiner wrote:
> > On Tue, Apr 07, 2026 at 07:00:02PM +0800, Jianyue Wu wrote:
> > > All allocated folios are added into lru lists for later reclaim whether
> > > they are file or anonymous folios. However those folio lru operation codes
> > > are put in mm/swap.c which is not so appropriate. Because swap code is
> > > only for anonymous folios.
> >
> > Ironically, the only thing that doesn't fit in this file is the swap
> > stuff. The page_cluster & sysctl should be static in swap_state.c.
> >
> > The rest seems thematically relatively clean - infrastructure for
> > managing folio lifetime. swap.c is not the best name for it, but short
> > of finding a very clear improvement I'd just leave it alone.
>
> Can't agree more. We should move page_cluster & sysctl and swap_setup()
> to mm/swap_state.c, and rename mm/swap.c to mm/folio_lru.c or something
> like that.

Another issue is that many MM-internal items are placed in the
top-level include/linux/swap.h, which is supposed to be used by
code outside the MM subsystem as well.

For example, the following are actually MM-internal:

extern int vm_swappiness;
swap_setup();
workingset_*();
try_to_free_pages();
zone_reclaimable_pages();
lruvec_lru_size();
try_to_free_mem_cgroup_pages();
...

Thanks
Barry