3 ms·
Well at least in the near future I don't think you will see it on any other UNIX than Linux as it is compared to aio not a standard, but a Linux specific api.
by erk__ 6y ago
Well at least in the near future I don't think you will see it on any other UNIX than Linux as it is compared to aio not a standard, but a Linux specific api.
- dmw_ng 6y agoBPF and io_uring architectural styles both have heritage in and close equivalents at least on BSD. You could consider io_uring as nothing but a slightly fancier cousin of FreeBSD's netmap that exists for exactly the same reason, they just wear different shades of lipstick. BPF of course came directly from BSD into Linux Any inevitable standard will likely come from userspace, much in the same way libpcap successfully papered over raw packet capture for a huge variety of operating systems. The underlying kernel interface is basically just details. We're decades past the point where application portability required standards like POSIX to make progress, I imagine comparatively few modern programmers even know much about those kinds of standards any more.
- floatboth 6y agoHuh? io_uring from what I've seen is mostly about direct disk async IO which some databases like (and I prefer databases that mmap :P) while netmap is kernel bypass for networking – "mmap" for NIC ring buffers – without monster frameworks like DPDK, with universal API that keeps all NIC-speicifics in the kernel drivers.
- dmw_ng 6y agoCousins not twins.. io_uring with O_DIRECT to a block device is already architecturally equivalent to netmap with a network device. Its kernel-side internals have been kept sufficiently generic that we might eventually even see functional equivalence (but if Axboe is listening, please give us getdents64() via uring first!).
- erk__ 6y agoHopefully you are right and software will not not being to lean too much on direct io_uring instead of some kind of wrapper. Thanks for the comment it was pretty educational.