Re: [Patch mm-hotfixes v4] mm/page_vma_mapped: fix device-private PMD handling

From: Lance Yang

Date: Fri Jun 26 2026 - 22:51:54 EST




On 2026/6/27 08:38, Wei Yang wrote:
[...]

Might be good with this on top:

---8<---
diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c
index cfa1230c87bb..8b7c062bd81d 100644
--- a/mm/page_vma_mapped.c
+++ b/mm/page_vma_mapped.c
@@ -281,7 +281,7 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw)
return not_found(pvmw);
return true;
}
- /* THP pmd was split under us: handle on pte level */
+ /* THP/device-private pmd was split under us: handle on pte level */

As the comment in commit 65edfda6f3f2 ("mm/rmap: extend rmap and migration
support device-private entries") says:

Add device-private THP support...

Per my understanding, we first already setup mapping and "migrate" to device
memory. This looks a kind of place holder.

Not familiar with this. Just want to clarify, we want to treat device-private
pmd as some sort of THP or not?

Not a regular THP, obviously. Just the PMD-sized device-private entry case.

It can be split under us too; see commit 146287290023 ("mm/huge_memory:
implement device-private THP splitting").

Nothing deeper meant here. After taking PTL, if that PMD-sized entry
is gone, just drop to the PTE walk.


spin_unlock(pvmw->ptl);
pvmw->ptl = NULL;
} else if (!pmd_present(pmde)) {
--