From: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>
To: Gregory Price <gourry@gourry.net>
Cc: linux-mm@kvack.org, damon@lists.linux.dev,
linux-kernel@vger.kernel.org, kernel-team@meta.com,
sj@kernel.org, akpm@linux-foundation.org, david@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 3/4] mm/madvise: skip zone device folios in cold/pageout PMD range
Date: Thu, 6 Aug 2026 15:04:42 +0100 [thread overview]
Message-ID: <anSUb_KvuBEMnAMq@lucifer> (raw)
In-Reply-To: <20260728194714.3713735-4-gourry@gourry.net>
On Tue, Jul 28, 2026 at 03:47:13PM -0400, Gregory Price wrote:
> madvise_cold_or_pageout_pte_range() resolves the folio backing a PMD
> via pmd_folio() and ages or reclaims it without checking for zone
> device memory.
>
> The surrounding guards do not cover every zone device case:
>
> - can_madv_lru_vma() excludes VM_PFNMAP and VM_HUGETLB VMAs
> (so device DAX is filtered)
>
> - !pmd_present() branch above rejects device-private and
> migration entries, which are non-present.
>
> - A present zone device PMD - e.g. a device-coherent THP - is
> not filtered by any of these, nor by pmd_folio() (unlike
> vm_normal_page_pmd(), it performs no special/pfnmap check),
> and would be aged or paged out here.
>
> Skip ZONE_DEVICE folios explicitly during MADV_COLD/PAGEOUT.
>
> Signed-off-by: Gregory Price (Meta) <gourry@gourry.net>
LGTM so:
Reviewed-by: Lorenzo Stoakes (ARM) <ljs@kernel.org>
> ---
> mm/madvise.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/mm/madvise.c b/mm/madvise.c
> index 07a21ca31bad..ffd6a68320a8 100644
> --- a/mm/madvise.c
> +++ b/mm/madvise.c
> @@ -395,6 +395,9 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
>
> folio = pmd_folio(orig_pmd);
>
> + if (folio_is_zone_device(folio))
> + goto huge_unlock;
> +
> /* Do not interfere with other mappings of this folio */
> if (folio_maybe_mapped_shared(folio))
> goto huge_unlock;
> --
> 2.55.0
>
--
Cheers, Lorenzo
next prev parent reply other threads:[~2026-08-06 14:05 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) [this message]
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)
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=anSUb_KvuBEMnAMq@lucifer \
--to=ljs@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=david@kernel.org \
--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=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.