public inbox for [email protected]
 help / color / mirror / Atom feed
From: Jens Axboe <[email protected]>
To: Linus Torvalds <[email protected]>
Cc: io-uring <[email protected]>,
	"[email protected]" <[email protected]>
Subject: [GIT PULL] io_uring updates for 5.7-rc
Date: Sun, 29 Mar 2020 17:04:39 -0600	[thread overview]
Message-ID: <[email protected]> (raw)

Hi Linus,

Here are the io_uring changes for this merge window. Light on new
features this time around (just splice + buffer selection), lots of
cleanups, fixes, and improvements to existing support. In particular,
this pull request contains:

- Cleanup fixed file update handling for stack fallback (Hillf)

- Re-work of how pollable async IO is handled, we no longer require
  thread offload to handle that. Instead we rely using poll to drive
  this, with task_work execution.

- In conjunction with the above, allow expendable buffer selection, so
  that poll+recv (for example) no longer has to be a split operation.

- Make sure we honor RLIMIT_FSIZE for buffered writes

- Add support for splice (Pavel)

- Linked work inheritance fixes and optimizations (Pavel)

- Async work fixes and cleanups (Pavel)

- Improve io-wq locking (Pavel)

- Hashed link write improvements (Pavel)

- SETUP_IOPOLL|SETUP_SQPOLL improvements (Xiaoguang)

Please pull!


  git://git.kernel.dk/linux-block.git tags/for-5.7/io_uring-2020-03-29


----------------------------------------------------------------
Chucheng Luo (1):
      io_uring: fix missing 'return' in comment

Hillf Danton (2):
      io-uring: drop completion when removing file
      io-uring: drop 'free_pfile' in struct io_file_put

Jens Axboe (17):
      io_uring: consider any io_read/write -EAGAIN as final
      io_uring: io_accept() should hold on to submit reference on retry
      io_uring: store io_kiocb in wait->private
      io_uring: add per-task callback handler
      io_uring: mark requests that we can do poll async in io_op_defs
      io_uring: use poll driven retry for files that support it
      io_uring: buffer registration infrastructure
      io_uring: add IORING_OP_PROVIDE_BUFFERS
      io_uring: support buffer selection for OP_READ and OP_RECV
      io_uring: add IOSQE_BUFFER_SELECT support for IORING_OP_READV
      net: abstract out normal and compat msghdr import
      io_uring: add IOSQE_BUFFER_SELECT support for IORING_OP_RECVMSG
      io_uring: provide means of removing buffers
      io_uring: add end-of-bits marker and build time verify it
      io_uring: dual license io_uring.h uapi header
      io_uring: fix truncated async read/readv and write/writev retry
      io_uring: honor original task RLIMIT_FSIZE

Lukas Bulwahn (1):
      io_uring: make spdxcheck.py happy

Nathan Chancellor (1):
      io_uring: Ensure mask is initialized in io_arm_poll_handler

Oleg Nesterov (1):
      task_work_run: don't take ->pi_lock unconditionally

Pavel Begunkov (28):
      io_uring: don't call work.func from sync ctx
      io_uring: don't do full *prep_worker() from io-wq
      io_uring: remove req->in_async
      splice: make do_splice public
      io_uring: add interface for getting files
      io_uring: add splice(2) support
      io_uring: clean io_poll_complete
      io_uring: extract kmsg copy helper
      io-wq: remove unused IO_WQ_WORK_HAS_MM
      io_uring: remove IO_WQ_WORK_CB
      io-wq: use BIT for ulong hash
      io_uring: remove extra nxt check after punt
      io_uring: remove io_prep_next_work()
      io_uring: clean up io_close
      io_uring: make submission ref putting consistent
      io_uring: remove @nxt from handlers
      io_uring: get next work with submission ref drop
      io-wq: shuffle io_worker_handle_work() code
      io-wq: optimise locking in io_worker_handle_work()
      io-wq: optimise out *next_work() double lock
      io_uring/io-wq: forward submission ref to async
      io-wq: remove duplicated cancel code
      io-wq: don't resched if there is no work
      io-wq: split hashing and enqueueing
      io-wq: hash dependent work
      io-wq: close cancel gap for hashed linked work
      io_uring: Fix ->data corruption on re-enqueue
      io-wq: handle hashed writes in chains

Xiaoguang Wang (2):
      io_uring: io_uring_enter(2) don't poll while SETUP_IOPOLL|SETUP_SQPOLL enabled
      io_uring: cleanup io_alloc_async_ctx()

YueHaibing (1):
      io_uring: Fix unused function warnings

 fs/io-wq.c                      |  368 ++++---
 fs/io-wq.h                      |   65 +-
 fs/io_uring.c                   | 2015 +++++++++++++++++++++++++++------------
 fs/splice.c                     |    6 +-
 include/linux/socket.h          |    4 +
 include/linux/splice.h          |    3 +
 include/net/compat.h            |    3 +
 include/trace/events/io_uring.h |  103 ++
 include/uapi/linux/io_uring.h   |   42 +-
 kernel/task_work.c              |   18 +-
 net/compat.c                    |   30 +-
 net/socket.c                    |   25 +-
 12 files changed, 1826 insertions(+), 856 deletions(-)

-- 
Jens Axboe


             reply	other threads:[~2020-03-29 23:04 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-29 23:04 Jens Axboe [this message]
2020-03-30 19:50 ` [GIT PULL] io_uring updates for 5.7-rc 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