Messages in this thread | | | From | Vincent Guittot <> | Date | Fri, 13 Mar 2020 14:21:02 +0100 | Subject | Re: [PATCH V2] sched: fair: Use the earliest break even |
| |
On Fri, 13 Mar 2020 at 14:17, Daniel Lezcano <daniel.lezcano@linaro.org> wrote: > > On 13/03/2020 14:15, Vincent Guittot wrote: > > On Fri, 13 Mar 2020 at 13:15, Daniel Lezcano <daniel.lezcano@linaro.org> wrote: > > [ ... ] > > >>>>>> + > >>>>>> + if (idle_state) > >>>>>> + idle_set_break_even(rq, ktime_get_ns() + > >>>>> > >>>>> What worries me a bit is that it adds one ktime_get call each time a > >>>>> cpu enters idle > >>>> > >>>> Right, we can improve this in the future by folding the local_clock() in > >>>> cpuidle when entering idle with this ktime_get. > >>> > >>> Using local_clock() would be more latency friendly > >> > >> Unfortunately we are comparing the deadline across CPUs, so the > >> local_clock() can not be used here. > >> > >> But if we have one ktime_get() instead of a local_clock() + ktime_get(), > >> that should be fine, no? > > > > Can't this computation of break_even be done in cpuidle framework > > while computing other statistics for selecting the idle state instead > > ? cpuidle already uses ktime_get for next hrtimer as an example. > > So cpuidle compute break_even and make it available to scheduler like > > exit_latency. And I can imagine that system wide time value will also > > be needed when looking at next wakeup event of cluster/group of CPUs > > Ok, so you suggest to revisit and consolidate the whole time capture in > cpuidle? I think that makes sense.
Yes
> > > -- > <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs > > Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | > <http://twitter.com/#!/linaroorg> Twitter | > <http://www.linaro.org/linaro-blog/> Blog >
| |