From: Chen Xiaoguang <xiaoggc...@tencent.com> In pick_next_task_fair, if CPU is going to idle newidle_balance is called first trying to pull some tasks. When newidle_balance returns positive which means it does pulls tasks or some tasks enqueued then there is no need to check sched_fair_runnable again.
Signed-off-by: He Chen <heddc...@tencent.com> Signed-off-by: Xiaoguang Chen <xiaoggc...@tencent.com> --- kernel/sched/fair.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index ae7ceba..c2f7eac 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7004,10 +7004,9 @@ struct task_struct * struct task_struct *p; int new_tasks; -again: if (!sched_fair_runnable(rq)) goto idle; - +again: #ifdef CONFIG_FAIR_GROUP_SCHED if (!prev || prev->sched_class != &fair_sched_class) goto simple; -- 1.8.3.1