On Mon, Mar 18, 2019 at 10:51 AM Peter Zijlstra <[email protected]> wrote:
>
> How about I do a patch that schedules EFLAGS for both 32bit and 64bit,
> mark this for backporting to infinity.
>
> And then at the end, after the objtool-ac bits land, I do a patch
> removing the EFLAGS scheduling for x86_64.
Sounds sane to me.
And we can make it AC-conditional if it's actually shown to be visible
from a performance standpoint.
But iirc pushf/popf isn't really that expensive - in fact I think it's
pretty cheap when system flags don't change. Which would be the common
case unless you'd also make the popf do the irq restore part and
simply make finish_lock_switch() re-enable irq's by doing an
irqrestore?
I think popf is like 20 cycles or something (and pushf is just single
cycles). Probably not worth worrying about in the task switch context.
Linus