[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <6fd7e1ff-7807-442b-3c4a-344e006e0450@kernel.dk>
Date: Sun, 22 May 2022 15:26:13 -0600
From: Jens Axboe <axboe@...nel.dk>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: io-uring <io-uring@...r.kernel.org>,
netdev <netdev@...r.kernel.org>
Subject: [GIT PULL] io_uring 'more data in socket' support
Hi Linus,
To be able to fully utilize the 'poll first' support in the core
io_uring branch, it's advantageous knowing if the socket was empty after
a receive. This pull request adds support for that.
The core networking change conflicted with changes in netdev-next, so
it's sitting in a separate branch that both Jakub and I pulled in.
Note that this will through a merge conflict due to later changes in the
core io_uring branch, resolution:
diff --cc fs/io_uring.c
index d9529275a030,20c5d29e5b6c..1015dd49e7e5
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@@ -6115,6 -5947,8 +6115,7 @@@ static int io_recvmsg(struct io_kiocb *
struct io_async_msghdr iomsg, *kmsg;
struct io_sr_msg *sr = &req->sr_msg;
struct socket *sock;
- struct io_buffer *kbuf;
+ unsigned int cflags;
unsigned flags;
int ret, min_ret = 0;
bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK;
@@@ -6154,7 -5982,10 +6155,8 @@@
if (flags & MSG_WAITALL)
min_ret = iov_iter_count(&kmsg->msg.msg_iter);
+ kmsg->msg.msg_get_inq = 1;
-
- ret = __sys_recvmsg_sock(sock, &kmsg->msg, req->sr_msg.umsg,
- kmsg->uaddr, flags);
+ ret = __sys_recvmsg_sock(sock, &kmsg->msg, sr->umsg, kmsg->uaddr, flags);
if (ret < min_ret) {
if (ret == -EAGAIN && force_nonblock)
return io_setup_async_msg(req, kmsg);
Please pull!
The following changes since commit 8013d1d3d2e33236dee13a133fba49ad55045e79:
Merge tag 'soc-fixes-5.18-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc (2022-04-29 15:51:05 -0700)
are available in the Git repository at:
git://git.kernel.dk/linux-block.git tags/for-5.19/io_uring-net-2022-05-22
for you to fetch changes up to f548a12efd5ab97e6b1fb332e5634ce44b3d9328:
io_uring: return hint on whether more data is available after receive (2022-04-29 21:12:12 -0600)
----------------------------------------------------------------
for-5.19/io_uring-net-2022-05-22
----------------------------------------------------------------
Jens Axboe (4):
tcp: pass back data left in socket after receive
Merge branch 'for-5.19/io_uring-socket' into for-5.19/io_uring-net
Merge branch 'tcp-pass-back-data-left-in-socket-after-receive' of git://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux into for-5.19/io_uring-net
io_uring: return hint on whether more data is available after receive
fs/io_uring.c | 19 +++++++++++++++----
include/linux/socket.h | 6 +++++-
include/uapi/linux/io_uring.h | 2 ++
net/ipv4/tcp.c | 16 ++++++++++------
4 files changed, 32 insertions(+), 11 deletions(-)
--
Jens Axboe
Powered by blists - more mailing lists