Re: [PATCH v2 5/5] mm/rmap: add anon folio unmap dispatcher
From: David Hildenbrand (Arm)
Date: Fri Jul 10 2026 - 08:31:53 EST
On 7/10/26 07:59, Dev Jain wrote:
> Add ttu_anon_folio() as the common entry point for anonymous folio
> unmapping. It dispatches to the lazyfree or swapbacked helper as
> appropriate.
>
> Keep restoration of cleared PTEs in the caller, where the PTEs were
> removed.
>
> No functional change intended.
>
> Signed-off-by: Dev Jain <dev.jain@xxxxxxx>
> ---
> mm/rmap.c | 47 +++++++++++++++++++++++++----------------------
> 1 file changed, 25 insertions(+), 22 deletions(-)
>
> diff --git a/mm/rmap.c b/mm/rmap.c
> index 68459f23f5c0a..55aa3ff8bf216 100644
> --- a/mm/rmap.c
> +++ b/mm/rmap.c
> @@ -2172,6 +2172,28 @@ static bool ttu_anon_swapbacked_folio(struct vm_area_struct *vma,
> return true;
> }
>
> +static bool ttu_anon_folio(struct vm_area_struct *vma, struct folio *folio,
> + struct page *page, unsigned long address, pte_t *ptep,
> + pte_t pteval, unsigned long nr_pages)
> +{
> + /*
> + * Store the swap location in the pte.
> + * See handle_pte_fault() ...
> + */
> + if (unlikely(folio_test_swapbacked(folio) !=
> + folio_test_swapcache(folio))) {
> + WARN_ON_ONCE(1);
Can't you directly do
if (WARN_ON_ONCE(...))
return false;
That even implies the unlikely() :)
> + return false;
> + }
> +
> + if (!folio_test_swapbacked(folio))
> + return ttu_anon_lazyfree_folio(vma, folio, nr_pages);
> +
> + /* nr_pages > 1 not supported yet */
> + return ttu_anon_swapbacked_folio(vma, folio, page, address, ptep,
LGTM
Acked-by: David Hildenbrand (Arm) <david@xxxxxxxxxx>
--
Cheers,
David