* [PATCH] sched/fair: consider sched-idle CPU when selecting idle core @ 2020-07-23 23:38 Jiang Biao 2020-07-24 7:23 ` Vincent Guittot 0 siblings, 1 reply; 7+ messages in thread From: Jiang Biao @ 2020-07-23 23:38 UTC (permalink / raw) To: mingo, peterz, juri.lelli, vincent.guittot Cc: dietmar.eggemann, rostedt, bsegall, mgorman, linux-kernel, Jiang Biao From: Jiang Biao <benbjiang@tencent.com> Sched-idle CPU has been considered in select_idle_cpu and select_idle_smt, it also needs to be considered in select_idle_core to be consistent and keep the same *idle* policy. Signed-off-by: Jiang Biao <benbjiang@tencent.com> --- kernel/sched/fair.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 04fa8dbcfa4d..f430a9820d08 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6014,7 +6014,7 @@ void __update_idle_core(struct rq *rq) if (cpu == core) continue; - if (!available_idle_cpu(cpu)) + if (!available_idle_cpu(cpu) && !sched_idle_cpu(cpu)) goto unlock; } @@ -6045,7 +6045,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int bool idle = true; for_each_cpu(cpu, cpu_smt_mask(core)) { - if (!available_idle_cpu(cpu)) { + if (!available_idle_cpu(cpu) && !sched_idle_cpu(cpu)) { idle = false; break; } -- 2.21.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] sched/fair: consider sched-idle CPU when selecting idle core 2020-07-23 23:38 [PATCH] sched/fair: consider sched-idle CPU when selecting idle core Jiang Biao @ 2020-07-24 7:23 ` Vincent Guittot 2020-07-24 8:12 ` Jiang Biao 0 siblings, 1 reply; 7+ messages in thread From: Vincent Guittot @ 2020-07-24 7:23 UTC (permalink / raw) To: Jiang Biao Cc: Ingo Molnar, Peter Zijlstra, Juri Lelli, Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman, linux-kernel, Jiang Biao On Fri, 24 Jul 2020 at 01:39, Jiang Biao <humjb_1983@163.com> wrote: > > From: Jiang Biao <benbjiang@tencent.com> > > Sched-idle CPU has been considered in select_idle_cpu and > select_idle_smt, it also needs to be considered in select_idle_core to > be consistent and keep the same *idle* policy. In the case of select_idle_core, we are looking for a core that is fully idle but if one CPU of the core is running a sched_idle task, the core will not be idle and we might end up having the wakeup task on a CPU and a sched_idle task on another CPU of the core which is not what we want > > Signed-off-by: Jiang Biao <benbjiang@tencent.com> > --- > kernel/sched/fair.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 04fa8dbcfa4d..f430a9820d08 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -6014,7 +6014,7 @@ void __update_idle_core(struct rq *rq) > if (cpu == core) > continue; > > - if (!available_idle_cpu(cpu)) > + if (!available_idle_cpu(cpu) && !sched_idle_cpu(cpu)) > goto unlock; > } > > @@ -6045,7 +6045,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int > bool idle = true; > > for_each_cpu(cpu, cpu_smt_mask(core)) { > - if (!available_idle_cpu(cpu)) { > + if (!available_idle_cpu(cpu) && !sched_idle_cpu(cpu)) { > idle = false; > break; > } > -- > 2.21.0 > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] sched/fair: consider sched-idle CPU when selecting idle core 2020-07-24 7:23 ` Vincent Guittot @ 2020-07-24 8:12 ` Jiang Biao 2020-07-24 10:33 ` Vincent Guittot 0 siblings, 1 reply; 7+ messages in thread From: Jiang Biao @ 2020-07-24 8:12 UTC (permalink / raw) To: Vincent Guittot Cc: Jiang Biao, Ingo Molnar, Peter Zijlstra, Juri Lelli, Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman, linux-kernel, Jiang Biao On Fri, 24 Jul 2020 at 15:24, Vincent Guittot <vincent.guittot@linaro.org> wrote: > > On Fri, 24 Jul 2020 at 01:39, Jiang Biao <humjb_1983@163.com> wrote: > > > > From: Jiang Biao <benbjiang@tencent.com> > > > > Sched-idle CPU has been considered in select_idle_cpu and > > select_idle_smt, it also needs to be considered in select_idle_core to > > be consistent and keep the same *idle* policy. > > In the case of select_idle_core, we are looking for a core that is > fully idle but if one CPU of the core is running a sched_idle task, > the core will not be idle and we might end up having the wakeup task > on a CPU and a sched_idle task on another CPU of the core which is not > what we want Got it. sched_idle task may interfere its sibling, which brings me another question, If there's a core with smt1 running sched_idle task and smt2 idle, selecting smt1 rather than smt2 should be more helpful for wakee task, because wakee task could suppress the sched_idle task without neighbour interfering. And there seems to be no consideration about that currently. Is it worth improving that? Thanks a lot. Regards, Jiang ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] sched/fair: consider sched-idle CPU when selecting idle core 2020-07-24 8:12 ` Jiang Biao @ 2020-07-24 10:33 ` Vincent Guittot 2020-07-24 11:53 ` Jiang Biao 0 siblings, 1 reply; 7+ messages in thread From: Vincent Guittot @ 2020-07-24 10:33 UTC (permalink / raw) To: Jiang Biao Cc: Jiang Biao, Ingo Molnar, Peter Zijlstra, Juri Lelli, Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman, linux-kernel, Jiang Biao On Fri, 24 Jul 2020 at 10:12, Jiang Biao <benbjiang@gmail.com> wrote: > > On Fri, 24 Jul 2020 at 15:24, Vincent Guittot > <vincent.guittot@linaro.org> wrote: > > > > On Fri, 24 Jul 2020 at 01:39, Jiang Biao <humjb_1983@163.com> wrote: > > > > > > From: Jiang Biao <benbjiang@tencent.com> > > > > > > Sched-idle CPU has been considered in select_idle_cpu and > > > select_idle_smt, it also needs to be considered in select_idle_core to > > > be consistent and keep the same *idle* policy. > > > > In the case of select_idle_core, we are looking for a core that is > > fully idle but if one CPU of the core is running a sched_idle task, > > the core will not be idle and we might end up having the wakeup task > > on a CPU and a sched_idle task on another CPU of the core which is not > > what we want > Got it. sched_idle task may interfere its sibling, which brings me > another question, > If there's a core with smt1 running sched_idle task and smt2 idle, > selecting smt1 > rather than smt2 should be more helpful for wakee task, because wakee task > could suppress the sched_idle task without neighbour interfering. But the sched_idle will then probably quickly move on the idle smt2 > And there seems to be no consideration about that currently. > Is it worth improving that? This will complexify and extend the duration of the search loop and as mentioned above, it will most probably be a nop at the end because of sched_idle task moving on smt2 > > Thanks a lot. > > Regards, > Jiang ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] sched/fair: consider sched-idle CPU when selecting idle core 2020-07-24 10:33 ` Vincent Guittot @ 2020-07-24 11:53 ` Jiang Biao 2020-07-24 12:36 ` Ingo Molnar 0 siblings, 1 reply; 7+ messages in thread From: Jiang Biao @ 2020-07-24 11:53 UTC (permalink / raw) To: Vincent Guittot Cc: Jiang Biao, Ingo Molnar, Peter Zijlstra, Juri Lelli, Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman, linux-kernel, Jiang Biao On Fri, 24 Jul 2020 at 18:34, Vincent Guittot <vincent.guittot@linaro.org> wrote: > > On Fri, 24 Jul 2020 at 10:12, Jiang Biao <benbjiang@gmail.com> wrote: > > > > On Fri, 24 Jul 2020 at 15:24, Vincent Guittot > > <vincent.guittot@linaro.org> wrote: > > > > > > On Fri, 24 Jul 2020 at 01:39, Jiang Biao <humjb_1983@163.com> wrote: > > > > > > > > From: Jiang Biao <benbjiang@tencent.com> > > > > > > > > Sched-idle CPU has been considered in select_idle_cpu and > > > > select_idle_smt, it also needs to be considered in select_idle_core to > > > > be consistent and keep the same *idle* policy. > > > > > > In the case of select_idle_core, we are looking for a core that is > > > fully idle but if one CPU of the core is running a sched_idle task, > > > the core will not be idle and we might end up having the wakeup task > > > on a CPU and a sched_idle task on another CPU of the core which is not > > > what we want > > Got it. sched_idle task may interfere its sibling, which brings me > > another question, > > If there's a core with smt1 running sched_idle task and smt2 idle, > > selecting smt1 > > rather than smt2 should be more helpful for wakee task, because wakee task > > could suppress the sched_idle task without neighbour interfering. > > But the sched_idle will then probably quickly move on the idle smt2 > > > And there seems to be no consideration about that currently. > > Is it worth improving that? > > This will complexify and extend the duration of the search loop and > as mentioned above, it will most probably be a nop at the end because > of sched_idle task moving on smt2 Indeed, the complexity is not worth. Thanks for the explanation. Regards, Jiang > > > > > Thanks a lot. > > > > Regards, > > Jiang ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] sched/fair: consider sched-idle CPU when selecting idle core 2020-07-24 11:53 ` Jiang Biao @ 2020-07-24 12:36 ` Ingo Molnar 2020-07-24 12:40 ` Jiang Biao 0 siblings, 1 reply; 7+ messages in thread From: Ingo Molnar @ 2020-07-24 12:36 UTC (permalink / raw) To: Jiang Biao Cc: Vincent Guittot, Jiang Biao, Ingo Molnar, Peter Zijlstra, Juri Lelli, Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman, linux-kernel, Jiang Biao * Jiang Biao <benbjiang@gmail.com> wrote: > On Fri, 24 Jul 2020 at 18:34, Vincent Guittot > <vincent.guittot@linaro.org> wrote: > > > > On Fri, 24 Jul 2020 at 10:12, Jiang Biao <benbjiang@gmail.com> wrote: > > > > > > On Fri, 24 Jul 2020 at 15:24, Vincent Guittot > > > <vincent.guittot@linaro.org> wrote: > > > > > > > > On Fri, 24 Jul 2020 at 01:39, Jiang Biao <humjb_1983@163.com> wrote: > > > > > > > > > > From: Jiang Biao <benbjiang@tencent.com> > > > > > > > > > > Sched-idle CPU has been considered in select_idle_cpu and > > > > > select_idle_smt, it also needs to be considered in select_idle_core to > > > > > be consistent and keep the same *idle* policy. > > > > > > > > In the case of select_idle_core, we are looking for a core that is > > > > fully idle but if one CPU of the core is running a sched_idle task, > > > > the core will not be idle and we might end up having the wakeup task > > > > on a CPU and a sched_idle task on another CPU of the core which is not > > > > what we want > > > Got it. sched_idle task may interfere its sibling, which brings me > > > another question, > > > If there's a core with smt1 running sched_idle task and smt2 idle, > > > selecting smt1 > > > rather than smt2 should be more helpful for wakee task, because wakee task > > > could suppress the sched_idle task without neighbour interfering. > > > > But the sched_idle will then probably quickly move on the idle smt2 > > > > > And there seems to be no consideration about that currently. > > > Is it worth improving that? > > > > This will complexify and extend the duration of the search loop and > > as mentioned above, it will most probably be a nop at the end because > > of sched_idle task moving on smt2 > Indeed, the complexity is not worth. > Thanks for the explanation. BTW., if you disagree then you could add a bit of debug instrumentation to measure to what extent it's a nop at the end of the search loop, to turn the "most probably" statement into a specific number. Thanks, Ingo ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] sched/fair: consider sched-idle CPU when selecting idle core 2020-07-24 12:36 ` Ingo Molnar @ 2020-07-24 12:40 ` Jiang Biao 0 siblings, 0 replies; 7+ messages in thread From: Jiang Biao @ 2020-07-24 12:40 UTC (permalink / raw) To: Ingo Molnar Cc: Vincent Guittot, Jiang Biao, Ingo Molnar, Peter Zijlstra, Juri Lelli, Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman, linux-kernel, Jiang Biao On Fri, 24 Jul 2020 at 20:36, Ingo Molnar <mingo@kernel.org> wrote: > > > * Jiang Biao <benbjiang@gmail.com> wrote: > > > On Fri, 24 Jul 2020 at 18:34, Vincent Guittot > > <vincent.guittot@linaro.org> wrote: > > > > > > On Fri, 24 Jul 2020 at 10:12, Jiang Biao <benbjiang@gmail.com> wrote: > > > > > > > > On Fri, 24 Jul 2020 at 15:24, Vincent Guittot > > > > <vincent.guittot@linaro.org> wrote: > > > > > > > > > > On Fri, 24 Jul 2020 at 01:39, Jiang Biao <humjb_1983@163.com> wrote: > > > > > > > > > > > > From: Jiang Biao <benbjiang@tencent.com> > > > > > > > > > > > > Sched-idle CPU has been considered in select_idle_cpu and > > > > > > select_idle_smt, it also needs to be considered in select_idle_core to > > > > > > be consistent and keep the same *idle* policy. > > > > > > > > > > In the case of select_idle_core, we are looking for a core that is > > > > > fully idle but if one CPU of the core is running a sched_idle task, > > > > > the core will not be idle and we might end up having the wakeup task > > > > > on a CPU and a sched_idle task on another CPU of the core which is not > > > > > what we want > > > > Got it. sched_idle task may interfere its sibling, which brings me > > > > another question, > > > > If there's a core with smt1 running sched_idle task and smt2 idle, > > > > selecting smt1 > > > > rather than smt2 should be more helpful for wakee task, because wakee task > > > > could suppress the sched_idle task without neighbour interfering. > > > > > > But the sched_idle will then probably quickly move on the idle smt2 > > > > > > > And there seems to be no consideration about that currently. > > > > Is it worth improving that? > > > > > > This will complexify and extend the duration of the search loop and > > > as mentioned above, it will most probably be a nop at the end because > > > of sched_idle task moving on smt2 > > Indeed, the complexity is not worth. > > Thanks for the explanation. > > BTW., if you disagree then you could add a bit of debug > instrumentation to measure to what extent it's a nop at the end of the > search loop, to turn the "most probably" statement into a specific > number. > > Thanks, > > Ingo Ok, I'll try. Thanks for your reply. Regards, Jiang ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-07-24 12:40 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-07-23 23:38 [PATCH] sched/fair: consider sched-idle CPU when selecting idle core Jiang Biao 2020-07-24 7:23 ` Vincent Guittot 2020-07-24 8:12 ` Jiang Biao 2020-07-24 10:33 ` Vincent Guittot 2020-07-24 11:53 ` Jiang Biao 2020-07-24 12:36 ` Ingo Molnar 2020-07-24 12:40 ` Jiang Biao
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.