Re: [rfc patch] i386: don't save eflags on task switch

Zachary Amsden
2006-11-05T08:01:58Z

Andi Kleen wrote:
>> For me, when compiled with -O2, it results in
>>
>> 84
>> 88
>> 132
>>
>> which basically says: a "rdtsc->rdtsc" is 84 cycles, putting a "pushfl" in
>> between is another _4_ cycles, and putting a "popfl" in between is about
>> another 48 cycles.
>>
>
> This means we should definitely change restore_flags() to only STI,
> never popf
>

sti is expensive as well; iirc just as expensive on most processors as
popf, although I don't have hard numbers to back this up on hand. An
_unlikely_ jcc + popf? is better than a sti, for sure, but a likely
jcc+popf could cost more than a jcc+sti, depending on model.

Zach