On Mon, Jun 04, 2018 at 03:30:13PM +0530, Srikar Dronamraju wrote:
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index ea32a66..94091e6 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -1725,8 +1725,9 @@ static int task_numa_migrate(struct task_struct *p)
>        * Tasks that are "trapped" in such domains cannot be migrated
>        * elsewhere, so there is no point in (re)trying.
>        */
> -     if (unlikely(!sd)) {
> -             p->numa_preferred_nid = task_node(p);
> +     if (unlikely(!sd) && p->numa_preferred_nid != task_node(p)) {
> +             /* Set the new preferred node */
> +             sched_setnuma(p, task_node(p));
>               return -EINVAL;
>       }
>  

That looks dodgy.. this would allow things to continue with !sd.

Reply via email to