On Thu, Apr 23, 2015 at 3:55 PM, Andy Lutomirski <l...@amacapital.net> wrote: > > 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.
Yeah. That said, I do think Peter is right that there are usually a *lot* more system calls than there are context switches, even if I guess you could come up with specific cases where that isn't true (eg in-kernel file servers etc that never actually go to user space). And the scheduler approach would have the benefit of not being in asm code, so we can more easily use things like static keys or alternative_asm() to make the overhead go away on CPU's that don't need it. We certainly _can_ do that in an *.S file too, but we don't have quite the same level of infrastructure help to do it. Adding some static key protected thing to switch_to() in arch/x86/kernel/process_64.c wouldn't seem too bad. And at that point, the only cost is a a single no-op on most CPU's (we still don't know _which_ AMD CPU's are affected, but I guess we could start off with all of them and see if we can get an exhaustive list some way). Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/