From: "David Hildenbrand (Arm)" <david@kernel.org>
To: Gregory Price <gourry@gourry.net>, linux-mm@kvack.org
Cc: damon@lists.linux.dev, linux-kernel@vger.kernel.org,
kernel-team@meta.com, sj@kernel.org, akpm@linux-foundation.org,
ljs@kernel.org, ziy@nvidia.com, baolin.wang@linux.alibaba.com,
liam@infradead.org, npache@redhat.com, ryan.roberts@arm.com,
dev.jain@arm.com, baohua@kernel.org, lance.yang@linux.dev,
usama.arif@linux.dev, vbabka@kernel.org, jannh@google.com,
matthew.brost@intel.com, joshua.hahnjy@gmail.com,
rakie.kim@sk.com, byungchul@sk.com, ying.huang@linux.alibaba.com,
apopple@nvidia.com
Subject: Re: [PATCH 4/4] mm/mempolicy: skip zone device folios when queueing folios
Date: Thu, 6 Aug 2026 15:25:50 +0200 [thread overview]
Message-ID: <82f6afba-756c-4ffd-bd5d-c3432179af28@kernel.org> (raw)
In-Reply-To: <20260728194714.3713735-5-gourry@gourry.net>
On 7/28/26 21:47, Gregory Price wrote:
> queue_folios_pte_range() already pairs vm_normal_folio() with an
> explicit folio_is_zone_device() check before adding folios to the
> migration pagelist.
>
> vm_normal_folio() alone does not reject zone device memory (a present
> device-coherent page in a normal VMA is returned as "normal").
>
> Mirror the explicit check in the two other walkers.
>
> queue_folios_pmd() uses pmd_folio() directly and can encounter a present
> zone device PMD - e.g. a device-coherent THP.
>
> This is not filtered by existing checks:
> !pmd_present() - only rejects non-present device-private and
> migration entries
>
> vma_migratable() - excludes DAX and VM_PFNMAP.
>
> The early return also means such a folio is no longer counted in
> qp->nr_failed under MPOL_MF_STRICT. This is the same pattern used
> by queue_folios_pte_range() (skipping zone device without failing).
>
> queue_folios_hugetlb() cannot see zone device memory - hugetlb folios
> are never ZONE_DEVICE - so the check there is purely defensive and keeps
> all three walkers consistent.
>
No fixes tag?
> Signed-off-by: Gregory Price (Meta) <gourry@gourry.net>
> ---
> mm/mempolicy.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/mm/mempolicy.c b/mm/mempolicy.c
> index 5720f7f54d94..bd79e61a40d1 100644
> --- a/mm/mempolicy.c
> +++ b/mm/mempolicy.c
> @@ -668,6 +668,8 @@ static void queue_folios_pmd(pmd_t *pmd, struct mm_walk *walk)
> }
> if (!queue_folio_required(folio, qp))
> return;
> + if (folio_is_zone_device(folio))
> + return;
Why not before the queue_folio_required() check like the PMD case does?
> if (!(qp->flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) ||
> !vma_migratable(walk->vma) ||
> !migrate_folio_add(folio, qp->pagelist, qp->flags))
> @@ -797,6 +799,8 @@ static int queue_folios_hugetlb(pte_t *pte, unsigned long hmask,
> folio = pfn_folio(pte_pfn(ptep));
> if (!queue_folio_required(folio, qp))
> goto unlock;
> + if (folio_is_zone_device(folio))
> + goto unlock;
Leave the hugetlb part alone. hugetlb folios will never be ZONE_DEVICE.
--
Cheers,
David
next prev parent reply other threads:[~2026-08-06 13:26 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-28 19:47 [PATCH 0/4] mm: reject zone device folios in more folio walkers Gregory Price
2026-07-28 19:47 ` [PATCH 1/4] mm/damon: defensively skip zone device folios in damon_get_folio() Gregory Price
2026-07-28 19:57 ` sashiko-bot
2026-07-28 20:16 ` Gregory Price
2026-07-29 0:55 ` SJ Park
2026-07-29 0:50 ` SJ Park
2026-07-29 2:01 ` Gregory Price
2026-07-29 14:22 ` SJ Park
2026-07-29 15:14 ` Gregory Price
2026-08-06 13:37 ` Lorenzo Stoakes (ARM)
2026-08-06 17:05 ` Gregory Price
2026-08-07 0:09 ` SJ Park
2026-07-28 19:47 ` [PATCH 2/4] mm/huge_memory: skip zone device folios in madvise_free_huge_pmd() Gregory Price
2026-07-28 20:01 ` sashiko-bot
2026-08-06 13:20 ` David Hildenbrand (Arm)
2026-08-06 13:59 ` Lorenzo Stoakes (ARM)
2026-08-06 17:03 ` Gregory Price
2026-07-28 19:47 ` [PATCH 3/4] mm/madvise: skip zone device folios in cold/pageout PMD range Gregory Price
2026-07-28 19:58 ` sashiko-bot
2026-08-06 13:23 ` David Hildenbrand (Arm)
2026-08-06 17:07 ` Gregory Price
2026-08-06 14:04 ` Lorenzo Stoakes (ARM)
2026-07-28 19:47 ` [PATCH 4/4] mm/mempolicy: skip zone device folios when queueing folios Gregory Price
2026-07-28 19:59 ` sashiko-bot
2026-08-06 13:25 ` David Hildenbrand (Arm) [this message]
2026-08-06 13:36 ` Lorenzo Stoakes (ARM)
2026-08-06 14:11 ` David Hildenbrand (Arm)
2026-08-06 14:16 ` Lorenzo Stoakes (ARM)
2026-08-06 17:09 ` Gregory Price
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=82f6afba-756c-4ffd-bd5d-c3432179af28@kernel.org \
--to=david@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=apopple@nvidia.com \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=byungchul@sk.com \
--cc=damon@lists.linux.dev \
--cc=dev.jain@arm.com \
--cc=gourry@gourry.net \
--cc=jannh@google.com \
--cc=joshua.hahnjy@gmail.com \
--cc=kernel-team@meta.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=sj@kernel.org \
--cc=usama.arif@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.