Re: [PATCH 2/2] mm, numa: Migrate pages to local nodes quicker early in the lifetime of a task

From: Srikar Dronamraju
Date: Wed Oct 03 2018 - 09:16:03 EST


> > if we want to prioritize STREAM like workloads (i.e private faults) one simpler
> > fix could be to change the quadtraic equation
> >
> > from:
> > if (!cpupid_pid_unset(last_cpupid) &&
> > cpupid_to_nid(last_cpupid) != dst_nid)
> > return false;
> > to:
> > if (!cpupid_pid_unset(last_cpupid) &&
> > cpupid_to_nid(last_cpupid) == dst_nid)
> > return true;
> >
> > i.e to say if the group tasks likely consolidated to a node or the task was
> > moved to a different node but access were private, just move the memory.
> >
> > The drawback though is we keep pulling memory everytime the task moves
> > across nodes. (which is probably restricted for long running tasks to some
> > extent by your fix)
> >
>
> This has way more consequences as it changes the behaviour for the entire
> lifetime of the workload. It could cause excessive migrations in the case
> where a machine is almost fully utilised and getting load balanced or in
> cases where tasks are pulled frequently cross-node (e.g. worker thread
> model or a pipelined computation).
>
> I'm only looking to address the case where the load balancer spreads a
> workload early and the memory should move to the new node quickly. If it
> turns out there are cases where that decision is wrong, it gets remedied
> quickly but if your proposal is ever wrong, the system doesn't recover.
>

Agree.

--
Thanks and Regards
Srikar Dronamraju