Linux kernel: Add io_uring IO interface
git.kernel.dk
git.kernel.dk
Somewhat orthogonally, does anyone happen to know if the hardware fixes eliminating the need for software mitigations still increase syscall cost substantially? I imagine if you have to inhibit speculation across context boundaries the cost is still higher than a pre-spectre world, even if done in hardware...
The various kinds of Spectre are harder (and are wider than just the kernel, things like Javascript VMs are also affected), but the cost there is more diffuse.
Compared to this Windows is looking more and more impressive and their api is decades old.
I’m sure this is higher performing in some benchmark setup, but very little cpu time is spent on kernel overhead for any heavy io application.
It would be nicer just to have a clean set of flexible asynchronous apis that all shared a relatively simpler model.
EDIT: that is not to say that it is as horrible to use as epoll (at least in multithreaded programs), but my favorite has to be kqueue.
I would really like to see some backing for that claim. In I/O heavy applications that I've seen (Think performance enhancing proxies), syscalls easily account for over half the CPU cycles.
That was directly from userspace->kernel getting slowed down, to send on the network.