Ask questionsinternal/poll: transparently support new linux io_uring interface

A document on the latest linux IO syscall has made the rounds of discussion forums on the internet:

I wanted to open a discussion on whether we could (and should) add transparent support for this on supported linux kernels.

LWN article:


Answer questions coder543

If that is true, we would only use it for file I/O

File I/O is the main reason I'm interested in io_uring. My understanding is that the current Linux kernel abstractions for async networking work just fine, but making file I/O appear to be interruptible so that goroutines don't block entire OS threads requires using a pool of I/O OS threads. If io_uring could remove the need for a pool of OS threads for file I/O, that seems to make it worthwhile.

Whether having a ring per P (as @CAFxX suggests) or just having a single thread dedicated to managing a ring... either solution seems fine. Unless there's some measurable advantage to io_uring for networking, I don't think it would be that important to switch the networking code at this point.

Josh Leverette coder543 Tampa, FL Software engineer with a focus on high performance, backend systems written in either Rust or Go.
Github User Rank List