<snip>
Do we need to skip the entire core just because 1st cpu in the core doesn't have full capacity ?
Signed-off-by: Rohit Jain <rohit.k.jain@xxxxxxxxxx>
---
 kernel/sched/fair.c | 37 ++++++++++++++++++++++++++++---------
 1 file changed, 28 insertions(+), 9 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index eaede50..5b1f7b9 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -6004,7 +6004,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int
 Â for_each_cpu(cpu, cpu_smt_mask(core)) {
ÂÂÂÂÂÂÂÂÂÂÂÂÂ cpumask_clear_cpu(cpu, cpus);
-ÂÂÂÂÂÂÂÂÂÂÂ if (!idle_cpu(cpu))
+ÂÂÂÂÂÂÂÂÂÂÂ if (!idle_cpu(cpu) || !full_capacity(cpu))
Let's say that is the only idle core available. It will go and try to select_idle_cpu() to find the idlest cpu.
Is it worth spending extra time to search an idle cpu with full capacity when there are idle cores available ?