From: Usama Arif <usama.arif@linux.dev>
To: Andrew Morton <akpm@linux-foundation.org>,
apopple@nvidia.com, balbirs@nvidia.com, baohua@kernel.org,
baolin.wang@linux.alibaba.com, byungchul@sk.com,
david@kernel.org, dev.jain@arm.com, gourry@gourry.net,
jannh@google.com, joshua.hahnjy@gmail.com, lance.yang@linux.dev,
liam@infradead.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, ljs@kernel.org, matthew.brost@intel.com,
npache@redhat.com, rakie.kim@sk.com, ryan.roberts@arm.com,
usama.arif@linux.dev, vbabka@kernel.org,
ying.huang@linux.alibaba.com, ziy@nvidia.com,
shakeel.butt@linux.dev, hannes@cmpxchg.org
Subject: [PATCH v2 0/3] mm: handle device-private PMDs in walk callbacks
Date: Wed, 8 Jul 2026 05:20:06 -0700 [thread overview]
Message-ID: <20260708122040.861335-1-usama.arif@linux.dev> (raw)
I have followed Joshua's suggestion in [1] for v2. The patches look different
but acheive the same goal, so I have kept the Reviewed-by tags from v1.
Joshua, Zi and Balbir please let me know if this wasn't ok!
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.
[1] https://lore.kernel.org/all/20260707191917.3213033-1-joshua.hahnjy@gmail.com/
v1 -> v2: https://lore.kernel.org/all/20260707135255.292870-1-usama.arif@linux.dev/
- Patch 1 now gates queue_folios_pmd() on !pmd_present() instead of
checking only pmd_is_device_private_entry(). This matches the PTE path,
keeps migration entries counted in qp->nr_failed, and skips other
non-present PMDs such as device-private entries before calling
pmd_folio(). (Joshua)
- Patches 2 and 3 now fold device-private PMD handling into the existing
!pmd_present() VM_BUG_ON() condition instead of using a separate early
pmd_is_device_private_entry() check. (Joshua)
- cc stable (Zi)
Usama Arif (3):
mm/mempolicy: skip non-present 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 | 8 +++++---
3 files changed, 9 insertions(+), 5 deletions(-)
--
2.53.0-Meta
next reply other threads:[~2026-07-08 12:20 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-08 12:20 Usama Arif [this message]
2026-07-08 12:20 ` [PATCH v2 1/3] mm/mempolicy: skip non-present PMDs when queueing folios Usama Arif
2026-07-08 13:05 ` David Hildenbrand (Arm)
2026-07-08 15:27 ` Zi Yan
2026-07-08 12:20 ` [PATCH v2 2/3] mm/madvise: skip device-private PMDs in cold and pageout walks Usama Arif
2026-07-08 13:10 ` David Hildenbrand (Arm)
2026-07-08 12:20 ` [PATCH v2 3/3] mm/huge_memory: skip device-private PMDs in madvise_free_huge_pmd Usama Arif
2026-07-08 13:11 ` David Hildenbrand (Arm)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260708122040.861335-1-usama.arif@linux.dev \
--to=usama.arif@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=apopple@nvidia.com \
--cc=balbirs@nvidia.com \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=byungchul@sk.com \
--cc=david@kernel.org \
--cc=dev.jain@arm.com \
--cc=gourry@gourry.net \
--cc=hannes@cmpxchg.org \
--cc=jannh@google.com \
--cc=joshua.hahnjy@gmail.com \
--cc=lance.yang@linux.dev \
--cc=liam@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=matthew.brost@intel.com \
--cc=npache@redhat.com \
--cc=rakie.kim@sk.com \
--cc=ryan.roberts@arm.com \
--cc=shakeel.butt@linux.dev \
--cc=vbabka@kernel.org \
--cc=ying.huang@linux.alibaba.com \
--cc=ziy@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.