Originally posted by bug77
View Post
Announcement
Collapse
No announcement yet.
IO_uring To Ring In Some Awesome Improvements With Linux 6.0
Collapse
X
-
Originally posted by oleid View Post
On that matter: how do you currently profit from io_uring without *directly* using low level C apis? Does boost/asio, for example, already support io_uring?
Comment
-
Originally posted by oleid View Post
On that matter: how do you currently profit from io_uring without *directly* using low level C apis? Does boost/asio, for example, already support io_uring?
- Likes 2
Comment
-
Originally posted by bug77 View PostThis is well out of my area of expertise, but if I understood correctly, you don't. At least not directly. This more happening within the kernel, while you keep calling the same kernel APIs you are used to.
That README contains a link to an introductory doc. It's worth skimming through, even if you have no intention of using it.
BTW, my experience with boost::asio is that it's rather heavy-weight to make sense for high-IOPS io_uring scenarios. It's designed more with network communication latencies in mind. Also, it traditionally doesn't scale over threads terribly well.
- Likes 4
Comment
-
Originally posted by mojc View PostBoost/asio has io_uring backend since 1.78.0:
As you can see, the benchmark completes faster with io_uring. However, this does not include the additional CPU usage associated with io_uring's kernel worker threads, which results in higher overall CPU usage than epoll.
And the benefit is a 38% improvement. Not bad, but I do hope the quoted numbers were median figures and not best/worst of the io_uring and epoll versions, respectively. He also mentions other caveats you should definitely read, if you're thinking of using it.
Importantly, note that his benchmark is using socket communication via pipe(). If he were doing conventional file I/O, epoll() wouldn't even be an option.
Comment
-
Originally posted by coder View PostSorry, that's not correct. To profit from io_uring, you must use the corresponding syscalls -- either directly, or via a userspace wrapper library, like liburing.
That README contains a link to an introductory doc. It's worth skimming through, even if you have no intention of using it.
BTW, my experience with boost::asio is that it's rather heavy-weight to make sense for high-IOPS io_uring scenarios. It's designed more with network communication latencies in mind. Also, it traditionally doesn't scale over threads terribly well.
Comment
-
Originally posted by MorrisS. View PostI'm very excited on this new bunch of progresses. I hope that linux operating systems will adopt this kernel soon as possible.
- Likes 1
Comment
-
Originally posted by kozman View PostI bow humbly to this guys skills. Damn! So will any of this perf improvement claw back some of the perf loss from Retbleed mitigations?
Comment
-
Originally posted by erniv2 View Post
Yes he is amazing at what he does with io_uring, but no those subsystem improvments dont help with the lose of the real computing power from those software migations.
- Likes 1
Comment
Comment