[GIT,PULL] io_uring changes for 5.6-rc
diff mbox series

Message ID edc14d52-b3d7-9860-097a-357164150e85@kernel.dk
State Superseded
Headers show
Series
  • [GIT,PULL] io_uring changes for 5.6-rc
Related show

Commit Message

Jens Axboe Jan. 27, 2020, 7:59 p.m. UTC
Hi Linus,

Here are the io_uring changes for 5.6. Note that this is sitting on top
of Al's work.openat2 branch, and was rebased about a week ago as Al
rebased that. So consider this a pre-pull request, ready to go as soon
as you've pulled the work.openat2 stuff from Al.

This pull request contains:

- Support for various new opcodes (fallocate, openat, close, statx,
  fadvise, madvise, openat2, non-vectored read/write and send/recv)

- Faster ring quiesce for fileset updates

- Optimizations for overflow condition checking

- Support for max-sized clamping

- Support for probing what opcodes are supported

- Support for io-wq backend sharing between "sibling" rings

- Lots of little fixes and improvements

The pull will throw a small merge conflict, due to the last minute
revert we had before 5.5. Trivial to resolve, attaching my resolution
just for reference.

Please pull!


  git://git.kernel.dk/linux-block.git tags/for-5.6/io_uring-vfs-2020-01-27


----------------------------------------------------------------
Jens Axboe (40):
      Merge branch 'io_uring-5.5' into for-5.6/io_uring-vfs
      io_uring: add support for fallocate()
      fs: make build_open_flags() available internally
      io_uring: add support for IORING_OP_OPENAT
      fs: move filp_close() outside of __close_fd_get_file()
      io-wq: add support for uncancellable work
      io_uring: add support for IORING_OP_CLOSE
      io_uring: avoid ring quiesce for fixed file set unregister and update
      fs: make two stat prep helpers available
      io_uring: add support for IORING_OP_STATX
      io-wq: support concurrent non-blocking work
      io_uring: add IOSQE_ASYNC
      io_uring: remove two unnecessary function declarations
      io_uring: add lookup table for various opcode needs
      io_uring: split overflow state into SQ and CQ side
      io_uring: improve poll completion performance
      io_uring: add non-vectored read/write commands
      io_uring: allow use of offset == -1 to mean file position
      io_uring: add IORING_OP_FADVISE
      mm: make do_madvise() available internally
      io_uring: add IORING_OP_MADVISE
      io_uring: wrap multi-req freeing in struct req_batch
      io_uring: extend batch freeing to cover more cases
      io_uring: add support for IORING_SETUP_CLAMP
      io_uring: add support for send(2) and recv(2)
      io_uring: file set registration should use interruptible waits
      io_uring: change io_ring_ctx bool fields into bit fields
      io_uring: enable option to only trigger eventfd for async completions
      io_uring: add 'struct open_how' to the openat request context
      io_uring: remove 'fname' from io_open structure
      io_uring: add support for IORING_OP_OPENAT2
      io_uring: add opcode to issue trace event
      io_uring: account fixed file references correctly in batch
      io_uring: add support for probing opcodes
      io_uring: file switch work needs to get flushed on exit
      io-wq: make the io_wq ref counted
      io-wq: add 'id' to io_wq
      io-wq: allow lookup of existing io_wq with given id
      io_uring: add support for sharing kernel io-wq workqueue
      io_uring: don't attempt to copy iovec for READ/WRITE

Pavel Begunkov (18):
      io_uring: rename prev to head
      io_uring: move *queue_link_head() from common path
      pcpu_ref: add percpu_ref_tryget_many()
      io_uring: batch getting pcpu references
      io_uring: clamp to_submit in io_submit_sqes()
      io_uring: optimise head checks in io_get_sqring()
      io_uring: optimise commit_sqring() for common case
      io_uring: remove extra io_wq_current_is_worker()
      io_uring: optimise use of ctx->drain_next
      io_uring: remove extra check in __io_commit_cqring
      io_uring: hide uring_fd in ctx
      io_uring: remove REQ_F_IO_DRAINED
      io_uring: optimise sqe-to-req flags translation
      io_uring: use labeled array init in io_op_defs
      io_uring: prep req when do IOSQE_ASYNC
      io_uring: honor IOSQE_ASYNC for linked reqs
      io_uring: add comment for drain_next
      io_uring: fix refcounting with batched allocations at OOM

YueHaibing (1):
      io_uring: Remove unnecessary null check

 drivers/android/binder.c        |    6 +-
 fs/file.c                       |    6 +-
 fs/internal.h                   |    8 +
 fs/io-wq.c                      |   84 +-
 fs/io-wq.h                      |   13 +-
 fs/io_uring.c                   | 2161 ++++++++++++++++++++++++++++++---------
 fs/open.c                       |    5 +-
 fs/stat.c                       |   34 +-
 include/linux/mm.h              |    1 +
 include/linux/percpu-refcount.h |   26 +-
 include/trace/events/io_uring.h |   13 +-
 include/uapi/linux/io_uring.h   |   62 +-
 mm/madvise.c                    |    7 +-
 13 files changed, 1923 insertions(+), 503 deletions(-)

Comments

Jens Axboe Jan. 28, 2020, 8:04 p.m. UTC | #1
On 1/27/20 12:59 PM, Jens Axboe wrote:
> Hi Linus,
> 
> Here are the io_uring changes for 5.6. Note that this is sitting on top
> of Al's work.openat2 branch, and was rebased about a week ago as Al
> rebased that. So consider this a pre-pull request, ready to go as soon
> as you've pulled the work.openat2 stuff from Al.

We changed the sibling ring support somewhat, so I pruned this tag. I'll
re-send this pull request in a few days.

Patch
diff mbox series

diff --cc fs/io_uring.c
index e54556b0fcc6,65fe16a795c1..eeaafbd74259
--- a/fs/io_uring.c