On Wed, 23 Dec 2020 at 09:32, <[email protected]> wrote: > > From: Chen Xiaoguang <[email protected]> > > Before a CPU switches from running SCHED_NORMAL task to > SCHED_IDLE task, trying to pull SCHED_NORMAL tasks from other
Could you explain more in detail why you only care about this use case in particular and not the general case? > CPU by doing load_balance first. > > Signed-off-by: Chen Xiaoguang <[email protected]> > Signed-off-by: Chen He <[email protected]> > --- > 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) && Why do you need a prev and fair task ? You seem to target the special case of pick_next_task but in this case why not only testing rf!=null to make sure to not return immediately after jumping to the idle label? Also why not doing that for default case too ? i.e. balance_fair() ? > + sched_idle_cpu(rq->cpu)) > + goto idle; > + > again: > if (!sched_fair_runnable(rq)) > goto idle; > -- > 1.8.3.1 > >

