Re: [PATCH 3/7] mm/migrate: copy the referenced state via folio_migrate_refs()
From: David Hildenbrand (Arm)
Date: Thu Aug 20 2026 - 14:30:50 EST
On 8/18/26 07:38, Kairui Song via B4 Relay wrote:
> From: Kairui Song <kasong@xxxxxxxxxxx>
>
> folio_migrate_flags() copies PG_referenced separately, while
> folio_migrate_refs() copies the rest of the reference state. Make
> folio_migrate_refs() copy the complete state, i.e., PG_referenced plus
> the MGLRU refs counter, in both LRU implementations, and drop the
> open-coded copy so the reference state is transferred in one place.
>
> Signed-off-by: Kairui Song <kasong@xxxxxxxxxxx>
> ---
> include/linux/mm_inline.h | 16 +++++++++++++---
> mm/migrate.c | 4 ++--
> 2 files changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h
> index 93bf3fa221f8..df62daaa2ee7 100644
> --- a/include/linux/mm_inline.h
> +++ b/include/linux/mm_inline.h
> @@ -366,11 +366,19 @@ static inline bool lru_gen_del_folio(struct lruvec *lruvec, struct folio *folio,
> return true;
> }
>
> +/**
> + * folio_migrate_refs - copy the reference state to a new folio
> + * @new: the destination folio
> + * @old: the source folio
> + *
Man, that function has a confusing name (refs vs. ref_count). :)
"ref_state" would be clearer (just what the description says).
Or better, "folio_migrate_lru_refs", because that's literally the name of the
function you use: folio_set_lru_refs.
Can we have a cleanup patch to name that consistently?
--
Cheers,
David