Re: [Resend][PATCH] sched/fair: micro-optimize pick_next_entity()

From: Peter Zijlstra
Date: Tue Aug 31 2021 - 10:11:37 EST


On Wed, Aug 25, 2021 at 02:27:49PM +0800, Li RongQing wrote:
> Only check the skip buddy when next buddy and last buddy
> are not picked up, this can save the cycles of checking
> the skip buddy and computation of the second buddy, when
> next and last buddy will be picked up
> for example, yield_to_task_fair() set both next and skip
> buddy

Is that actually measurable?

But looking at it, should we not, instead, move the whole ->skip thing to
the bottom, so we unconditionally check it vs the result of
->next/->last ?

Imagine ->next == ->skip, then we want to avoid running it and not have
->next win.