|
|
|
|
|
by tele_ski
1835 days ago
|
|
I think this might be the best explanation I've read of why io_uring should be better than epoll since it effectively collapses the 'tell me when this is ready' with the 'do action' part. That was the really enlightening part for me. I have to say though, the name io_uring seems unfortunate and I think the author touches on this in the article... the name is really an implementation detail but io_uring's true purpose is a generic asynchronous syscall facility that is currently tailored towards i/o. syscall_queue or async_queue or something else...? A descriptive api name and not an implementation detail would probably go a long way in helping the feature be easier to understand. Even window's IOCP seems infinitely better named than 'uring'. |
|
"what if, instead of the kernel telling us when something is ready for an action to be taken so that we can take it, we tell the kernel what action to we want to take, and it will do it when the conditions become right."
The difference between select and epoll was that select would keep checking in until the conditions were right while epoll would send you a message. That was gamechanging.
- I'm not really sure why this is seen as such a fundamental change. It's changed from the kernel triggering a callback to... a callback.