Re: [PATCH] mm/numa_balancing: allow migrate on protnone reference with MPOL_WEIGHTED_INTERLEAVE policy
From: Li Zhe
Date: Fri Oct 02 2026 - 03:31:13 EST
On 9/30/26 8:25 PM, Gregory Price wrote:
> On Wed, Sep 30, 2026 at 07:22:10PM +0800, Li Zhe wrote:
>> Yes, that makes sense to me.
>>
>> I do not see a reason to keep the MPOL_F_MORON handling limited to
>> specific policy cases. The flag already means that migrate-on-fault
>> placement should target the accessing CPU's node, and the nodemask check
>> is the common constraint we want for all policies that opt in to this
>> behavior.
>>
>> I will rework v2 to handle MPOL_F_MORON before the policy-specific
>> switch. Then the switch can remain responsible for the non-MPOL_F_MORON
>> misplaced logic, while MPOL_BIND, MPOL_PREFERRED_MANY, MPOL_INTERLEAVE
>> and MPOL_WEIGHTED_INTERLEAVE can share the same migrate-on-fault path.
>>
> I do think it's worth breaking this up a bit, we can decide whether we
> want to apply it to interleave separate of the larger change.
>
> there is also slightly different behavior for task-mempolicy and
> vma-mempolicy, because vma-mempolicy applies interleave via index while
> task mempolicy does it based on a rolling counter, so you'll want to
> think about what happens on repeated faults
>
> i.e.
>
> 1) fault in a VMA interleaved based on idx
> 2) a bunch of tiering and pageout/swap happens
> 3) we fault a page back in based on idx - that means this page is
> forever-faulted onto that location rather than taking that as an
> indication that maybe it should be local
>
> Maybe we're ok with that, but we should probably think about it a bit.
>
> We may also want to limit this based on NUMA balancing being in tiering
> mode vs normal mode. This only makes sense in tiering mode, in my
> opinion. In normal mode i'm not sure it makes as much sense - and
> that's probably where this all came from.
>
> tl;dr: If we want to change this behavior for interleave, we should
> probably give more thought for how it should apply more generally
> instead of just hacking on support to one or two modes.
Agreed. I think this is the right direction.
The repeated-fault case for VMA interleave is a good example of why
simply enabling one or two modes could bake in odd semantics. I do not
have a good generic answer for that yet. Although we might be OK with
that behavior, it deserves more thought before being folded into the
interface.
I also agree that the current motivation fits memory tiering better than
normal NUMA balancing. For the next step, I will take a step back and
think more carefully about how migrate-on-fault should apply more
generally, especially around the boundary between memory tiering and
normal NUMA balancing.
Thanks,
Zhe
>
> ~Gregory