Originally posted by Random_Jerk
View Post
Announcement
Collapse
No announcement yet.
IO_uring Continues To Prove Very Exciting: Promising io_uring_spawn Announced
Collapse
X
-
Last edited by microcode; 13 September 2022, 12:27 PM.
-
Originally posted by microcode View Post
Anything that does IO lol. I'm writing a UDP program against it right now; I suspect it'll give me at least 32x the throughput of normal recv in my use case. It'd be nice if OpenBSD had an io_uring impl some day, even nicer if it were source compatible... one can dream.
- Likes 1
Comment
-
Originally posted by microcode View Post
Anything that does IO lol. I'm writing a UDP program against it right now; I suspect it'll give me at least 32x the throughput of normal recv in my use case. It'd be nice if OpenBSD had an io_uring impl some day, even nicer if it were source compatible... one can dream.
IMHO even though it goes against the main design of io_uring I think it would be good if it could expose a synchronous version. For some workloads/applications you simply want to / really need to handle the worker threads manually so it would be nice to just get rid of the context switch overhead.
- Likes 3
Comment
-
Originally posted by F.Ultra View Post
How on earth will it give you 32x the throughput? Do you have that amount of context switch overhead?
IMHO even though it goes against the main design of io_uring I think it would be good if it could expose a synchronous version. For some workloads/applications you simply want to / really need to handle the worker threads manually so it would be nice to just get rid of the context switch overhead.
Thus, it can be used in blocking code, but not sure how useful it will be in practice.
- Likes 1
Comment
-
Will those significant IO_uring improvements also help QEMU Virtual Machines (VirtIO), OpenvSwitch, and alike?
Today, if you want high throughput in VMs, you kinda need OVS with DPDK at the hosts, which consumes a lot of CPU all the time, but works!
I'm wondering if, with the new IO awesomeness, we could drop DPDK, and reduce CPU consumptions (leave this to Bitcoin miners lol) while not losing in performance.
Pipe dream?
Comment
-
Originally posted by cl333r View PostTrue but most apps that do IO simply don't need io_uring because they don't do as much IO to make a noticeable difference. For example for me switching in my file browser to io_uring made no noticeable difference replacing epoll+inotify with io_uring+inotify, so I switched back because the epoll+inotify is simpler code.
- Likes 2
Comment
-
Originally posted by sinepgib View Post
Yes. There are niches where it could make a big difference, but it's not as universal as some people make it sound. I think probably web servers and p2p clients are the best candidates.
Comment
-
Originally posted by NobodyXu View PostMaybe also database as they do a lot of disk I/O, and make/ninja/cargo for taking advantage of the new io_uring_spawn
- Likes 1
Comment
-
Originally posted by sinepgib View Post
Yes. Also the Go runtime could benefit, since it abstracts all IO behind blocking interfaces and io_uring should not hurt. It would also remove lots of IO threads used for async file IO.
Originally posted by sinepgib View Posttop is probably a good candidate too I think? Most of the time it'll be reading tiny files.
- Likes 1
Comment
Comment