From: Jens Axboe <[email protected]>
To: Linus Torvalds <[email protected]>
Cc: io-uring <[email protected]>
Subject: [GIT PULL] First round io_uring updates for 6.2-rc1
Date: Sat, 10 Dec 2022 08:35:55 -0700 [thread overview]
Message-ID: <[email protected]> (raw)
Hi Linus,
First part of the io_uring changes for the 6.2 merge window. We ended up
splitting this into two, to avoid unnecessary merge conflicts with fixes
that went into 6.1 later in the cycle.
This pull request contains:
- Always ensure proper ordering in case of CQ ring overflow, which then
means we can remove some work-arounds for that (Dylan)
- Support completion batching for multishot, greatly increasing the
efficiency for those (Dylan)
- Flag epoll/eventfd wakeups done from io_uring, so that we can easily
tell if we're recursing into io_uring again. Previously, this would
have resulted in repeated multishot notifications if we had a
dependency there. That could happen if an eventfd was registered as
the ring eventfd, and we multishot polled for events on it. Or if an
io_uring fd was added to epoll, and io_uring had a multishot request
for the epoll fd. Test cases here [1]. Previously these got terminated
when the CQ ring eventually overflowed, now it's handled gracefully
(me).
- Tightening of the IOPOLL based completions (Pavel)
- Optimizations of the networking zero-copy paths (Pavel)
- Various tweaks and fixes (Dylan, Pavel)
[1] https://git.kernel.dk/cgit/liburing/commit/?id=919755a7d0096fda08fb6d65ac54ad8d0fe027cd
Please pull!
The following changes since commit eb7081409f94a9a8608593d0fb63a1aa3d6f95d8:
Linux 6.1-rc6 (2022-11-20 16:02:16 -0800)
are available in the Git repository at:
git://git.kernel.dk/linux.git tags/for-6.2/io_uring-2022-12-08
for you to fetch changes up to 5d772916855f593672de55c437925daccc8ecd73:
io_uring: keep unlock_post inlined in hot path (2022-11-25 06:11:15 -0700)
----------------------------------------------------------------
for-6.2/io_uring-2022-12-08
----------------------------------------------------------------
Dylan Yudaken (13):
io_uring: do not always force run task_work in io_uring_register
io_uring: revert "io_uring fix multishot accept ordering"
io_uring: allow multishot recv CQEs to overflow
io_uring: always lock in io_apoll_task_func
io_uring: defer all io_req_complete_failed
io_uring: allow defer completion for aux posted cqes
io_uring: add io_aux_cqe which allows deferred completion
io_uring: make io_fill_cqe_aux static
io_uring: add lockdep assertion in io_fill_cqe_aux
io_uring: remove overflow param from io_post_aux_cqe
io_uring: allow multishot polled reqs to defer completion
io_uring: remove io_req_complete_post_tw
io_uring: spelling fix
Jens Axboe (5):
eventpoll: add EPOLL_URING_WAKE poll wakeup flag
eventfd: provide a eventfd_signal_mask() helper
io_uring: pass in EPOLL_URING_WAKE for eventfd signaling and wakeups
Revert "io_uring: disallow self-propelled ring polling"
io_uring: kill io_cqring_ev_posted() and __io_cq_unlock_post()
Lin Ma (2):
io_uring/poll: remove outdated comments of caching
io_uring: update outdated comment of callbacks
Pavel Begunkov (19):
io_uring: move kbuf put out of generic tw complete
io_uring/net: remove extra notif rsrc setup
io_uring/net: preset notif tw handler
io_uring/net: rename io_uring_tx_zerocopy_callback
io_uring/net: inline io_notif_flush()
io_uring: move zc reporting from the hot path
io_uring/net: move mm accounting to a slower path
io_uring: inline io_req_task_work_add()
io_uring: split tw fallback into a function
io_uring: inline __io_req_complete_post()
io_uring: add completion locking for iopoll
io_uring: hold locks for io_req_complete_failed
io_uring: use io_req_task_complete() in timeout
io_uring: remove io_req_tw_post_queue
io_uring: inline __io_req_complete_put()
io_uring: iopoll protect complete_post
io_uring: remove iopoll spinlock
io_uring: don't use complete_post in kbuf
io_uring: keep unlock_post inlined in hot path
Stefan Metzmacher (1):
io_uring/net: introduce IORING_SEND_ZC_REPORT_USAGE flag
Xinghui Li (1):
io_uring: fix two assignments in if conditions
fs/eventfd.c | 37 ++++---
fs/eventpoll.c | 18 ++--
include/linux/eventfd.h | 7 ++
include/linux/io_uring_types.h | 2 +
include/uapi/linux/eventpoll.h | 6 ++
include/uapi/linux/io_uring.h | 18 ++++
io_uring/io_uring.c | 223 ++++++++++++++++++++++++-----------------
io_uring/io_uring.h | 43 +++++---
io_uring/kbuf.c | 14 +--
io_uring/msg_ring.c | 4 +-
io_uring/net.c | 56 +++++++----
io_uring/notif.c | 57 +++++++----
io_uring/notif.h | 15 ++-
io_uring/poll.c | 33 +++---
io_uring/rsrc.c | 11 +-
io_uring/rw.c | 6 ++
io_uring/timeout.c | 10 +-
io_uring/uring_cmd.c | 2 +-
18 files changed, 355 insertions(+), 207 deletions(-)
--
Jens Axboe
next reply other threads:[~2022-12-10 15:36 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-10 15:35 Jens Axboe [this message]
2022-12-13 19:02 ` [GIT PULL] First round io_uring updates for 6.2-rc1 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] \
/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