From: "David Hildenbrand (Arm)" <david@kernel.org>
To: Zi Yan <ziy@nvidia.com>, Gregory Price <gourry@gourry.net>,
linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com,
akpm@linux-foundation.org, ljs@kernel.org, liam@infradead.org,
vbabka@kernel.org, rppt@kernel.org, surenb@google.com,
mhocko@suse.com, mingo@redhat.com, peterz@infradead.org,
juri.lelli@redhat.com, vincent.guittot@linaro.org,
dietmar.eggemann@arm.com, rostedt@goodmis.org,
bsegall@google.com, mgorman@suse.de, vschneid@redhat.com,
kprateek.nayak@amd.com, baolin.wang@linux.alibaba.com,
nico.pache@linux.dev, ryan.roberts@arm.com, dev.jain@arm.com,
baohua@kernel.org, lance.yang@linux.dev, usama.arif@linux.dev,
kas@kernel.org, matthew.brost@intel.com, joshua.hahnjy@gmail.com,
rakie.kim@sk.com, byungchul@sk.com, ying.huang@linux.alibaba.com,
apopple@nvidia.com, jannh@google.com, pfalcato@suse.de,
osalvador@suse.de, hannes@cmpxchg.org, raghavendra.kt@amd.com,
stable@vger.kernel.org
Subject: Re: [PATCH v2 2/4] mm: allow shared folios to be promoted to a fast tier
Date: Fri, 18 Sep 2026 14:54:43 +0200 [thread overview]
Message-ID: <2c9f5d85-3396-4246-8179-3358a00ad223@kernel.org> (raw)
In-Reply-To: <DLHS4KFPQ86I.1J4LN3352RI71@nvidia.com>
On 9/17/26 19:49, Zi Yan wrote:
> On Thu Sep 10, 2026 at 8:18 PM EDT, Gregory Price wrote:
>> From: "Gregory Price (Meta)" <gourry@gourry.net>
>>
>> NUMA balancing rejects shared copy-on-write folios and executable
>> file folios mapped by multiple processes to avoid placement bouncing.
>> These checks also block promotion from slow memory.
>>
>> Allow such folios to participate when moving from a slow tier to a fast
>> tier. Keep the existing restrictions for ordinary placement.
>>
>> Fixes: c574bbe91703 ("NUMA balancing: optimize page placement for memory tiering system")
>> Cc: stable@vger.kernel.org
>> Assisted-by: LLM
>> Signed-off-by: Gregory Price (Meta) <gourry@gourry.net>
>> ---
>> mm/mempolicy.c | 8 ++++++--
>> mm/migrate.c | 6 ++++--
>> 2 files changed, 10 insertions(+), 4 deletions(-)
>>
>> diff --git a/mm/mempolicy.c b/mm/mempolicy.c
>> index a082ccfa09ec..19b599bc2dd1 100644
>> --- a/mm/mempolicy.c
>> +++ b/mm/mempolicy.c
>> @@ -863,8 +863,12 @@ bool folio_can_map_prot_numa(struct folio *folio, struct vm_area_struct *vma,
>> if (!folio || folio_is_zone_device(folio) || folio_test_ksm(folio))
>> return false;
>>
>> - /* Also skip shared copy-on-write folios */
>> - if (vma_is_cow_mapping(vma) && folio_maybe_mapped_shared(folio))
>> + /*
>> + * Shared copy-on-write folios are poor NUMA placement candidates, but
>> + * a hot folio on a slow tier still needs a hint fault for promotion.
>> + */
>> + if (vma_is_cow_mapping(vma) && folio_maybe_mapped_shared(folio) &&
>> + !folio_use_access_time(folio))
>> return false;
>>
>> /* Folios are pinned and can't be migrated */
>> diff --git a/mm/migrate.c b/mm/migrate.c
>> index a369d0c95c38..afd9c97d2389 100644
>> --- a/mm/migrate.c
>> +++ b/mm/migrate.c
>> @@ -2697,12 +2697,14 @@ int migrate_misplaced_folio_prepare(struct folio *folio,
>> /*
>> * Do not migrate file folios that are mapped in multiple
>> * processes with execute permissions as they are probably
>> - * shared libraries.
>> + * shared libraries, unless this is a promotion from a slow tier.
>> *
>> * See folio_maybe_mapped_shared() on possible imprecision
>> * when we cannot easily detect if a folio is shared.
>> */
>> - if ((vma->vm_flags & VM_EXEC) && folio_maybe_mapped_shared(folio))
>> + if ((vma->vm_flags & VM_EXEC) &&
>> + folio_maybe_mapped_shared(folio) &&
>> + (!folio_use_access_time(folio) || !node_is_toptier(node)))
>> return -EACCES;
>>
>> /*
>
> Should we rename folio_use_access_time() to folio_in_lowtier()?
> Otherwise the code is really hard to understand.
I just stumbled over that myself and I agree.
> I admit that I
> introduced folio_use_access_time() and it was probably because it
> decides the use of folio_xchg_access_time() in
> folio_can_map_prot_numa(). But in the other callsites, folio_in_lowtier()
> makes more sense.
We can just have an alias function if it makes the code easier to get.
--
Cheers,
David
next prev parent reply other threads:[~2026-09-18 12:55 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-11 0:18 [PATCH v2 0/4] sched/numa: stop VMA scan filters from gating promotion Gregory Price
2026-09-11 0:18 ` [PATCH v2 1/4] mm: support promotion-only NUMA hinting scans Gregory Price
2026-09-17 16:03 ` Peter Zijlstra
2026-09-17 16:14 ` Gregory Price
2026-09-18 12:26 ` David Hildenbrand (Arm)
2026-09-18 12:37 ` David Hildenbrand (Arm)
2026-09-18 13:46 ` Gregory Price
2026-09-18 13:56 ` David Hildenbrand (Arm)
2026-09-11 0:18 ` [PATCH v2 2/4] mm: allow shared folios to be promoted to a fast tier Gregory Price
2026-09-17 16:08 ` Peter Zijlstra
2026-09-17 16:18 ` Gregory Price
2026-09-17 16:23 ` Peter Zijlstra
2026-09-17 16:39 ` Gregory Price
2026-09-18 4:14 ` Bharata B Rao
2026-09-17 17:49 ` Zi Yan
2026-09-18 12:54 ` David Hildenbrand (Arm) [this message]
2026-09-18 12:53 ` David Hildenbrand (Arm)
2026-09-18 13:54 ` Gregory Price
2026-09-18 13:57 ` David Hildenbrand (Arm)
2026-09-11 0:18 ` [PATCH v2 3/4] sched/numa: scan read-only file mappings in tiering mode Gregory Price
2026-09-18 12:58 ` David Hildenbrand (Arm)
2026-09-18 13:57 ` Gregory Price
2026-09-18 13:59 ` David Hildenbrand (Arm)
2026-09-18 14:53 ` Lorenzo Stoakes (ARM)
2026-09-18 15:48 ` Gregory Price
2026-09-18 16:19 ` Lorenzo Stoakes (ARM)
2026-09-18 16:38 ` Gregory Price
2026-09-11 0:18 ` [PATCH v2 4/4] sched/numa: do not let VMA PID activity gate promotion Gregory Price
2026-09-17 16:19 ` Peter Zijlstra
2026-09-18 13:01 ` David Hildenbrand (Arm)
2026-09-18 13:59 ` Gregory Price
2026-09-11 5:38 ` [PATCH v2 0/4] sched/numa: stop VMA scan filters from gating promotion Gregory Price
2026-09-17 5:35 ` Andrew Morton
2026-09-17 6:59 ` Gregory Price
2026-09-17 15:53 ` David Hildenbrand (Arm)
2026-09-18 20:56 ` Zi Yan
2026-09-18 21:42 ` 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=2c9f5d85-3396-4246-8179-3358a00ad223@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=bsegall@google.com \
--cc=byungchul@sk.com \
--cc=dev.jain@arm.com \
--cc=dietmar.eggemann@arm.com \
--cc=gourry@gourry.net \
--cc=hannes@cmpxchg.org \
--cc=jannh@google.com \
--cc=joshua.hahnjy@gmail.com \
--cc=juri.lelli@redhat.com \
--cc=kas@kernel.org \
--cc=kernel-team@meta.com \
--cc=kprateek.nayak@amd.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=mgorman@suse.de \
--cc=mhocko@suse.com \
--cc=mingo@redhat.com \
--cc=nico.pache@linux.dev \
--cc=osalvador@suse.de \
--cc=peterz@infradead.org \
--cc=pfalcato@suse.de \
--cc=raghavendra.kt@amd.com \
--cc=rakie.kim@sk.com \
--cc=rostedt@goodmis.org \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=stable@vger.kernel.org \
--cc=surenb@google.com \
--cc=usama.arif@linux.dev \
--cc=vbabka@kernel.org \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
--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.