Re: [PATCH v1 3/4] mm/rmap: fix two comments related to huge_pmd_unshare()
From: Lorenzo Stoakes
Date: Wed Dec 10 2025 - 06:24:57 EST
On Fri, Dec 05, 2025 at 10:35:57PM +0100, David Hildenbrand (Red Hat) wrote:
> PMD page table unsharing no longer touches the refcount of a PMD page
> table. Also, it is not about dropping the refcount of a "PMD page" but
> the "PMD page table".
>
> Let's just simplify by saying that the PMD page table was unmapped,
> consequently also unmapping the folio that was mapped into this page.
>
> This code should be deduplicated in the future.
>
> Fixes: 59d9094df3d7 ("mm: hugetlb: independent PMD page table shared count")
> Cc: Liu Shixin <liushixin2@xxxxxxxxxx>
> Signed-off-by: David Hildenbrand (Red Hat) <david@xxxxxxxxxx>
LGTM, so:
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx>
> ---
> mm/rmap.c | 20 ++++----------------
> 1 file changed, 4 insertions(+), 16 deletions(-)
>
> diff --git a/mm/rmap.c b/mm/rmap.c
> index f955f02d570ed..748f48727a162 100644
> --- a/mm/rmap.c
> +++ b/mm/rmap.c
> @@ -2016,14 +2016,8 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma,
> flush_tlb_range(vma,
> range.start, range.end);
> /*
> - * The ref count of the PMD page was
> - * dropped which is part of the way map
> - * counting is done for shared PMDs.
> - * Return 'true' here. When there is
> - * no other sharing, huge_pmd_unshare
> - * returns false and we will unmap the
> - * actual page and drop map count
> - * to zero.
> + * The PMD table was unmapped,
> + * consequently unmapping the folio.
> */
> goto walk_done;
> }
> @@ -2416,14 +2410,8 @@ static bool try_to_migrate_one(struct folio *folio, struct vm_area_struct *vma,
> range.start, range.end);
>
> /*
> - * The ref count of the PMD page was
> - * dropped which is part of the way map
> - * counting is done for shared PMDs.
> - * Return 'true' here. When there is
> - * no other sharing, huge_pmd_unshare
> - * returns false and we will unmap the
> - * actual page and drop map count
> - * to zero.
> + * The PMD table was unmapped,
> + * consequently unmapping the folio.
> */
> page_vma_mapped_walk_done(&pvmw);
> break;
> --
> 2.52.0
>