4 ms·
Imaginary overhead doesn't count. Show me the benchmarks.
by temac 7y ago
Imaginary overhead doesn't count. Show me the benchmarks.
- chrismorgan 7y agoContext switching is expensive when you’re writing high-performance code. Conventional OSes require that you context switch to the kernel to perform I/O (disk or network), to say nothing of other processes vying for CPU time as well. All this is well-documented and -understood. The overhead is in no way imaginary. Unikernels don’t need to do context switches, by virtue of not having processes.
- namibj 7y agoSince io_uring, this isn't the case for most IO on Linux anymore.
- chrismorgan 7y agoI’m not terribly familiar with io_uring, and haven’t used it myself yet, but does it not still require a syscall to drive things, even though the buffers are shared? Brief investigation suggests the need for that might go away in the future? But all this io_uring stuff seems fairly immature yet and not widely used, though still definitely of interest.
- ncmncm 7y agoSyscalls to set up, otherwise just watch for atomically updated pointers to change..
- zamadatix 7y agoIf only context switching were an imaginary cost then we wouldn't have cared about spectre/meltdown impact.