Messages in this thread | | | From | Vincent Guittot <> | Date | Wed, 23 Dec 2020 12:30:26 +0100 | Subject | Re: [PATCH] sched: pull tasks when CPU is about to run SCHED_IDLE tasks |
| |
On Wed, 23 Dec 2020 at 09:32, <ultrachin@163.com> wrote: > > From: Chen Xiaoguang <xiaoggchen@tencent.com> > > 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 <xiaoggchen@tencent.com> > Signed-off-by: Chen He <heddchen@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) &&
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 > >
| |