From: Jens Axboe <[email protected]>
To: Linus Torvalds <[email protected]>
Cc: io-uring <[email protected]>, netdev <[email protected]>
Subject: [GIT PULL] io_uring 'more data in socket' support
Date: Sun, 22 May 2022 15:26:13 -0600 [thread overview]
Message-ID: <[email protected]> (raw)
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
next reply other threads:[~2022-05-22 21:26 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-22 21:26 Jens Axboe [this message]
2022-05-23 20:42 ` [GIT PULL] io_uring 'more data in socket' support pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox