I've forked and updated the aforementioned project to work on the modern Linux kernel: https://github.com/nuald/io_uring-kernel-example
Looks like the driver itself has nothing to do with io_uring
in particular, but rather uses:
iov
);kiocb
).The former is good enough even in the sync mode (preadv
/pwritev
in the example, or sendmmsg
-like userspace API). Unfortunately, the documentation is rather lacking though. I could find https://lwn.net/Articles/625077/ , but it refers to the older API.
Nevertheless, I think io_uring
is quite promising (and our internal performance tests confirm it). Security issues could be concerning, but the architecture itself is quite good. If it's still relevant, I'd like to recommend to dig deeper, or at least research scatter/gather API.