On Wed, Mar 19, 2025 at 08:32:19AM -0700, Joe Damato wrote:
See the docs on MSG_ZEROCOPY [1], but in short when a user app calls sendmsg and passes MSG_ZEROCOPY a completion notification is added to the error queue. The user app can poll for these to find out when the TX has completed and the buffer it passed to the kernel can be overwritten.
Yikes. That's not just an ugly interface, but something entirely specific to sockets and incompatible with all other asynchronous I/O interfaces.
and why aren't you simply plugging this into io_uring and generate a CQE so that it works like all other asynchronous operations?
I linked to the iouring work that Pavel did in the cover letter. Please take a look.
Please write down what matters in the cover letter, including all the important tradeoffs.