The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH 0/3] mm: handle device-private PMDs in walk callbacks
@ 2026-07-07 13:45 Usama Arif
  2026-07-07 13:45 ` [PATCH 1/3] mm/mempolicy: skip device-private PMDs when queueing folios Usama Arif
                   ` (4 more replies)
  0 siblings, 5 replies; 21+ messages in thread
From: Usama Arif @ 2026-07-07 13:45 UTC (permalink / raw)
  To: Andrew Morton, apopple, baohua, baolin.wang, byungchul, david,
	dev.jain, gourry, jannh, joshua.hahnjy, lance.yang, liam,
	linux-kernel, linux-mm, ljs, matthew.brost, npache, rakie.kim,
	ryan.roberts, usama.arif, vbabka, ying.huang, ziy, shakeel.butt,
	hannes

Since commit 368076f52ebe ("mm/huge_memory: add device-private THP support
to PMD operations") a PMD may hold a device-private swap entry whenever
an HMM-based GPU driver migrates an anonymous THP folio to device memory
via migrate_vma_pages().

pmd_trans_huge_lock() succeeds for such PMDs (pmd_is_huge() returns true
for any non-present, non-none huge PMD), so several MM walk callbacks
that used to assume present THP or migration entry are now reachable with
a device-private PMD. The results range from a VM_BUG_ON() firing on debug
kernels, to an oops on a bogus vmemmap dereference, to silently isolating
an unrelated live folio from LRU in the aliasing case.

The first 2 fixes were reported as pre-existing issues by sashiko in my
PMD swap entry series [1]. Hopefully sashiko won't point these out
in the next PMD swap entry series :)

[1] https://sashiko.dev/#/patchset/20260703173903.3789516-1-usama.arif%40linux.dev?part=6
 
Usama Arif (3):
  mm/mempolicy: skip device-private PMDs when queueing folios
  mm/madvise: skip device-private PMDs in cold and pageout walks
  mm/huge_memory: skip device-private PMDs in madvise_free_huge_pmd

 mm/huge_memory.c | 3 +++
 mm/madvise.c     | 3 +++
 mm/mempolicy.c   | 2 ++
 3 files changed, 8 insertions(+)

-- 
2.53.0-Meta


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2026-07-08 15:25 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-07 13:45 [PATCH 0/3] mm: handle device-private PMDs in walk callbacks Usama Arif
2026-07-07 13:45 ` [PATCH 1/3] mm/mempolicy: skip device-private PMDs when queueing folios Usama Arif
2026-07-07 20:33   ` Zi Yan
2026-07-08 10:54     ` Usama Arif
2026-07-08 15:25       ` Zi Yan
2026-07-07 23:49   ` Balbir Singh
2026-07-07 13:45 ` [PATCH 2/3] mm/madvise: skip device-private PMDs in cold and pageout walks Usama Arif
2026-07-07 20:41   ` Zi Yan
2026-07-07 23:27   ` Balbir Singh
2026-07-07 13:45 ` [PATCH 3/3] mm/huge_memory: skip device-private PMDs in madvise_free_huge_pmd Usama Arif
2026-07-07 20:44   ` Zi Yan
2026-07-07 23:26   ` Balbir Singh
2026-07-07 14:01 ` [PATCH 0/3] mm: handle device-private PMDs in walk callbacks Lorenzo Stoakes
2026-07-07 14:12   ` Usama Arif
2026-07-08  8:23     ` Lorenzo Stoakes
2026-07-08  8:40       ` Balbir Singh
2026-07-07 15:30   ` Zi Yan
2026-07-07 22:57   ` Balbir Singh
2026-07-08  8:38     ` Lorenzo Stoakes
2026-07-07 19:19 ` Joshua Hahn
2026-07-08 12:22   ` Usama Arif

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox