Re: [PATCH] x86_64, asm: Work around AMD SYSRET SS descriptor attribute issue

Andy Lutomirski
2015-04-26T23:37:01Z

On Fri, Apr 24, 2015 at 7:17 PM, Denys Vlasenko
<vda.linux@googlemail.com> wrote:
> On Fri, Apr 24, 2015 at 10:50 PM, Andy Lutomirski <luto@amacapital.net> wrote:
>> On Fri, Apr 24, 2015 at 1:46 PM, Denys Vlasenko
>>>> This might be way more trouble than it's worth.
>>>
>>> Exactly my feeling. What are you trying to save? About four CPU
>>> cycles of checking %ss != __KERNEL_DS on each switch_to?
>>> That's not worth bothering about. Your last patch seems to be perfect.
>>
>> We'll have to do the write to ss almost every time an AMD CPU sleeps
>> in a syscall.
>
> Why do you think so?
> Scheduling from a syscall which decided to block won't require
> writing to %ss, since in this case %ss isn't NULL.
>
> Writing to %ss will happen every time we schedule from an interrupt.
> With timer interrupt every 1 ms it means scheduling at most ~1000
> times per second, if _every_ such interrupt causes task switch.
> This is still not often enough to worry.

OK, you've convinced me. I still think it can happen much more than
~1k times per second due to hrtimers (see my test case) or things like
page faults, but those are all slow paths.

v2 coming.

--
Andy Lutomirski
AMA Capital Management, LLC