On 9/5/19 2:31 AM, Peter Zijlstra wrote:
On Fri, Aug 30, 2019 at 10:49:42AM -0700, subhra mazumdar wrote:Search SMT siblings before all CPUs in LLC domain for idle CPU. This helps in L1 cache locality. --- kernel/sched/fair.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 8856503..94dd4a32 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6274,11 +6274,11 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target) return i; }- i = select_idle_cpu(p, sd, target);+ i = select_idle_smt(p, target); if ((unsigned)i < nr_cpumask_bits) return i;- i = select_idle_smt(p, target);+ i = select_idle_cpu(p, sd, target); if ((unsigned)i < nr_cpumask_bits) return i;But it is absolutely conceptually wrong. An idle core is a much better target than an idle sibling.
This is select_idle_smt not select_idle_core.

