Zero-copy network transmission with io_uring
Zero-copy network transmission with io_uring
Posted Jan 2, 2022 7:59 UTC (Sun) by jezuch (subscriber, #52988)In reply to: Zero-copy network transmission with io_uring by Sesse
Parent article: Zero-copy network transmission with io_uring
Yes, but we're talking about io_uring and managed buffers. Ideally the user space would not touch the buffers at all, there would just be an op that says "gimme a (handle to a) buffer, any buffer, I can write to", give it to the device that fills it, then pass it along and never think of it again. The ring would handle the completion signals and return the buffer to the pool when it's really, truly done with it. This way the buffer would be "attached" not to the read or write, but to the entire sequence of operations. I think the media subsystem has something similar.
My guess is I don't really understand how managed buffers work :)
(The difficulty then is in making sure that the userspace does not reuse the buffer while it's "busy". Rust's ownership model looks like it was designed just with this in mind ;) )
The LWN site is currently under high scraper load, so comment display has been suppressed for anonymous users. If you are a human, you may read the comments by clicking the button below:
Note: you can avoid this step in the future by logging into your LWN account.
