Re: [PATCH v6] sched/fair: Consider cpu affinity when allowing NUMA imbalance in find_idlest_group

From: Srikar Dronamraju
Date: Mon Mar 14 2022 - 09:31:20 EST


* K Prateek Nayak <kprateek.nayak@xxxxxxx> [2022-03-09 17:00:33]:

> Hello Srikar,
>
> On 3/9/2022 3:13 PM, Srikar Dronamraju wrote:
> > [..snip..]
> > I completely understand your problem. The only missing piece is why is this
> > initial placement *not a problem for the unpinned case*. If we are able to
> > articulate how the current code works well for the unpinned case, I would
> > be fine.
> From what I understand, the initial task placement happens as follows:
>
> When a new task is created via fork or exec, for the initial wakeup
> it takes the slow path in select_task_rq_fair() and goes to
> find_idlest_cpu(). find_idlest_cpu() will explore the sched domain
> hierarchy in a top-down fashion to find the idlest cpu for task to
> run on.
>
> During this, it'll call find_idlest_group() to get the idlest group
> within a particular domain to search for the target cpu. In our case,
> the local group will have spare capacity to accommodate tasks.
> We only do a cpumask_test_cpu(this_cpu, sched_group_span(group))
> to check is the task can run on a particular group.
>

[snip]

Ok, Prateek, I do understand the intent here.
Thanks for spending the time to explain the same.

> Ah! I see. But I do believe this problem of initial
> placement lies along the wakeup path.
> --
> Thanks and Regards,
> Prateek

--
Thanks and Regards
Srikar Dronamraju