Re: [PATCH v1 1/4] mm/hugetlb: fix hugetlb_pmd_shared()

From: Lance Yang

Date: Sat Dec 06 2025 - 01:24:45 EST




On 2025/12/6 13:55, Lance Yang wrote:
From: Lance Yang <lance.yang@xxxxxxxxx>


On Fri, 5 Dec 2025 22:35:55 +0100, David Hildenbrand (Red Hat) wrote:
We switched from (wrongly) using the page count to an independent
shared count. Now, shared page tables have a refcount of 1 (excluding
speculative references) and instead use ptdesc->pt_share_count to
identify sharing.

We didn't convert hugetlb_pmd_shared(), so right now, we would never
detect a shared PMD table as such, because sharing/unsharing no longer
touches the refcount of a PMD table.

Page migration, like mbind() or migrate_pages() would allow for migrating
folios mapped into such shared PMD tables, even though the folios are
not exclusive. In smaps we would account them as "private" although they
are "shared", and we would be wrongly setting the PM_MMAP_EXCLUSIVE in the
pagemap interface.

Fix it by properly using ptdesc_pmd_is_shared() in hugetlb_pmd_shared().

Fixes: 59d9094df3d7 ("mm: hugetlb: independent PMD page table shared count")
Cc: <stable@xxxxxxxxxxxxxxx>
Cc: Liu Shixin <liushixin2@xxxxxxxxxx>
Signed-off-by: David Hildenbrand (Red Hat) <david@xxxxxxxxxx>
---

Good catch! Feel free to add:

Reviewed-by: Lance yang <lance.yang@xxxxxxxxx>

Actually:

Reviewed-by: Lance Yang <lance.yang@xxxxxxxxx>