From: Chen Xiaoguang <xiaoggc...@tencent.com> Before a CPU switches from running SCHED_NORMAL task to SCHED_IDLE task, trying to pull SCHED_NORMAL tasks from other CPU by doing load_balance first.
Signed-off-by: Chen Xiaoguang <xiaoggc...@tencent.com> Signed-off-by: Chen He <heddc...@tencent.com> --- kernel/sched/fair.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index ae7ceba..0a26132 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7004,6 +7004,11 @@ struct task_struct * struct task_struct *p; int new_tasks; + if (prev && + fair_policy(prev->policy) && + sched_idle_cpu(rq->cpu)) + goto idle; + again: if (!sched_fair_runnable(rq)) goto idle; -- 1.8.3.1