Re: [PATCH] x86/asm/entry/32: Restore %ss before SYSRETL if necessary

From: Andy Lutomirski
Date: Thu Apr 23 2015 - 18:55:53 EST


On Thu, Apr 23, 2015 at 3:52 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
> On 04/23/2015 03:38 PM, Andy Lutomirski wrote:
>>>
>>> Because there are way more sysrets than context switches, and Linux is
>>> particularly sensitive to system call latency, by design.
>>
>
> Just to clarify: why would Linux be more sensitive to system call by
> design? It enables much simpler APIs and avoids hacks like sending down
> a syscall task list (which was genuinely proposed at one point.) If
> kernel entry/exit is too expensive, then the APIs get more complex
> because they *have* to do everything in the smallest number of system calls.
>

It's a matter of the ratio, right? One cycle of syscall overhead
saved is worth some number of context switch cycles added, and the
ratio probably varies by workload.

If we do syscall, two context switches, and sysret, then we wouldn't
have been better off fixing it on sysret. But maybe most workloads
still prefer the fixup on context switch.

--Andy



--
Andy Lutomirski
AMA Capital Management, LLC
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/