Jens just picked a patchset to enable hybrid polling in io_uring.
We see big improvements on CPU utilization, specially on the read path (up to 70%).
Continuous improvements in the I/O Path in terms of core cost per I/O are critical for the adoption of new PCIe generations. And this is not only for storage devices; io_uring is already used in networking, and I believe we will see it being used for user-space driven accelerators.
@KayEss I don’t share your negative prognosis on the amount of R&D time required. My team has successfully converted large C-language codebases to io_uring which were much further away from io_uring than beam is.
As I stated earlier in the test, the main issue I see is whether or not there is an accessible/published test suite to validate the developments. If anyone could point me what kind of tests suites for the socket I/O part of beam exist, I’d have a look on the coverage they have to determine whether that’s sufficient coverage to confidently say a “pass” of that of a hypothetical io_uring port didn’t break anything.
Do you mean something more other than what is in the test suite(s) for socket or inet ? (note I only linked to two of them).
Also, I recently watched you talk on io_uring, eBPF, XDP and AF_XDP and found it extremely refreshing!
Edit :
I realize in retrospect you’re surely looking for a performance validation suite. I suppose that’s still an assumption, if you could clarify that would help us move this thread forward I believe