Messages in this thread | | | Date | Fri, 8 Nov 2019 14:33:48 +0000 | From | Quentin Perret <> | Subject | Re: [PATCH 4/7] sched: Optimize pick_next_task() |
| |
On Friday 08 Nov 2019 at 14:15:57 (+0100), Peter Zijlstra wrote: > Ever since we moved the sched_class defenitions into their own files,
s/defenitions/definitions
> the constant expression {fair,idle}_sched_class.pick_next_task() is > not in fact a compile time constant anymore and results in an indirect > call (barring LTO). > > Fix that by exposing pick_next_task_{fair,idle}() directly, this gets > rid of the indirect call (and RETPOLINE) on the fast path. > > Also remove the unlikely() from the idle case, it is in fact /the/ way > we select idle -- and that is a very common thing to do.
I assumed this was to optimize the case where we did find a cfs task to run. That is, we can afford to hit the unlikely case when there is no work to do after, but when there is, we shouldn't spend time checking the idle case. Makes sense ?
Thanks, Quentin
| |