Message ID | 20240509180627.204155-1-axboe@kernel.dk (mailing list archive) |
---|---|
Headers | show |
Series | Propagate back queue status on accept | expand |
On Thu, 9 May 2024 12:00:25 -0600 Jens Axboe wrote: > With io_uring, one thing we can do is tell userspace whether or not > there's more data left in a socket after a receive is done. This is > useful for applications to now, and it also helps make multishot receive > requests more efficient by eliminating that last failed retry when the > socket has no more data left. This is propagated by setting the > IORING_CQE_F_SOCK_NONEMPTY flag, and is driven by setting > msghdr->msg_get_inq and having the protocol fill out msghdr->msg_inq in > that case. > > For accept, there's a similar issue in that we'd like to know if there > are more connections to accept after the current one has been accepted. > Both because we can tell userspace about it, but also to drive multishot > accept retries more efficiently, similar to recv/recvmsg. > > This series starts by changing the proto/proto_ops accept prototypes > to eliminate flags/errp/kern and replace it with a structure that > encompasses all of them. Acked-by: Jakub Kicinski <kuba@kernel.org> Feel free to submit for 6.10, or LMK if you want me to send the first 3 to Linus.
On 5/13/24 6:13 PM, Jakub Kicinski wrote: > On Thu, 9 May 2024 12:00:25 -0600 Jens Axboe wrote: >> With io_uring, one thing we can do is tell userspace whether or not >> there's more data left in a socket after a receive is done. This is >> useful for applications to now, and it also helps make multishot receive >> requests more efficient by eliminating that last failed retry when the >> socket has no more data left. This is propagated by setting the >> IORING_CQE_F_SOCK_NONEMPTY flag, and is driven by setting >> msghdr->msg_get_inq and having the protocol fill out msghdr->msg_inq in >> that case. >> >> For accept, there's a similar issue in that we'd like to know if there >> are more connections to accept after the current one has been accepted. >> Both because we can tell userspace about it, but also to drive multishot >> accept retries more efficiently, similar to recv/recvmsg. >> >> This series starts by changing the proto/proto_ops accept prototypes >> to eliminate flags/errp/kern and replace it with a structure that >> encompasses all of them. > > Acked-by: Jakub Kicinski <kuba@kernel.org> > > Feel free to submit for 6.10, or LMK if you want me to send the first > 3 to Linus. Thanks! I'll send them in later this merge window (post the net-next changes).