mbox series

[v3,00/13] Remove aux CQE caches

Message ID cover.1710799188.git.asml.silence@gmail.com (mailing list archive)
Headers show
Series Remove aux CQE caches | expand

Message

Pavel Begunkov March 18, 2024, 10 p.m. UTC
Mandate ctx locking for task_work. Then, remove aux CQE caches mostly
used by multishot requests and post them directly into the CQ.

It's leaving some of the pre existing issue_flags and state conversion
non conformant chunks, which will need to clean up later.

v3: pass IO_URING_F_COMPLETE_DEFER to the cmd cancellation path
    drop patch moving request cancellation list removal to tw 
    drop all other ublk changes

v2: Add Patch 3, which fixes deadlock due to nested locking
    introduced in v1
    Remove a fix, which was taken separately
    Pile up more cleanups (Patches 12-14)

Pavel Begunkov (13):
  io_uring/cmd: move io_uring_try_cancel_uring_cmd()
  io_uring/cmd: kill one issue_flags to tw conversion
  io_uring/cmd: fix tw <-> issue_flags conversion
  io_uring/cmd: introduce io_uring_cmd_complete
  nvme/io_uring: don't hard code IO_URING_F_UNLOCKED
  io_uring/rw: avoid punting to io-wq directly
  io_uring: force tw ctx locking
  io_uring: remove struct io_tw_state::locked
  io_uring: refactor io_fill_cqe_req_aux
  io_uring: get rid of intermediate aux cqe caches
  io_uring: remove current check from complete_post
  io_uring: refactor io_req_complete_post()
  io_uring: clean up io_lockdep_assert_cq_locked

 drivers/nvme/host/ioctl.c      |   9 +-
 include/linux/io_uring/cmd.h   |  28 +++++
 include/linux/io_uring_types.h |   5 +-
 io_uring/io_uring.c            | 198 ++++++++-------------------------
 io_uring/io_uring.h            |  24 ++--
 io_uring/net.c                 |   6 +-
 io_uring/poll.c                |   3 +-
 io_uring/rw.c                  |  18 +--
 io_uring/timeout.c             |   8 +-
 io_uring/uring_cmd.c           |  45 +++++++-
 io_uring/uring_cmd.h           |   3 +
 io_uring/waitid.c              |   2 +-
 12 files changed, 143 insertions(+), 206 deletions(-)

Comments

Ming Lei March 19, 2024, 1:42 a.m. UTC | #1
On Mon, Mar 18, 2024 at 10:00:22PM +0000, Pavel Begunkov wrote:
> Mandate ctx locking for task_work. Then, remove aux CQE caches mostly
> used by multishot requests and post them directly into the CQ.
> 
> It's leaving some of the pre existing issue_flags and state conversion
> non conformant chunks, which will need to clean up later.
> 
> v3: pass IO_URING_F_COMPLETE_DEFER to the cmd cancellation path
>     drop patch moving request cancellation list removal to tw 
>     drop all other ublk changes

For the series, pass ublksrv test.

Tested-by: Ming Lei <ming.lei@redhat.com>


Thanks,
Ming
Jens Axboe March 19, 2024, 2:19 a.m. UTC | #2
On Mon, 18 Mar 2024 22:00:22 +0000, Pavel Begunkov wrote:
> Mandate ctx locking for task_work. Then, remove aux CQE caches mostly
> used by multishot requests and post them directly into the CQ.
> 
> It's leaving some of the pre existing issue_flags and state conversion
> non conformant chunks, which will need to clean up later.
> 
> v3: pass IO_URING_F_COMPLETE_DEFER to the cmd cancellation path
>     drop patch moving request cancellation list removal to tw
>     drop all other ublk changes
> 
> [...]

Applied, thanks!

[01/13] io_uring/cmd: move io_uring_try_cancel_uring_cmd()
        commit: c877857e86396576260d12eaae2f777fa4fd835f
[02/13] io_uring/cmd: kill one issue_flags to tw conversion
        commit: c6740905f9862b2780cc9a9a3e1714ea153d6c74
[03/13] io_uring/cmd: fix tw <-> issue_flags conversion
        commit: 17c8e3f66f16256d33a10555d0a63d64405ab046
[04/13] io_uring/cmd: introduce io_uring_cmd_complete
        commit: 23b0bed538ac9b73518c670925ebb64f0239b54f
[05/13] nvme/io_uring: don't hard code IO_URING_F_UNLOCKED
        commit: 1a587b0d65d09d61bd8f0db728923ab68d8fb9c2
[06/13] io_uring/rw: avoid punting to io-wq directly
        commit: 7f3b8125c3aee86b5dea06d9a9738b16aa55cbdd
[07/13] io_uring: force tw ctx locking
        commit: 2a475207f98db597043251be32bb8f16d3617af9
[08/13] io_uring: remove struct io_tw_state::locked
        commit: ccb464aeb6e563d1df179aacbb7c514369ceb8f0
[09/13] io_uring: refactor io_fill_cqe_req_aux
        commit: 39c25ce47d211f4decc47f09f9561b8630aab84e
[10/13] io_uring: get rid of intermediate aux cqe caches
        commit: 1a7520889e02de50c8334e215a3f187ff9a92456
[11/13] io_uring: remove current check from complete_post
        commit: 7af89eaee7d17c2f15e483c859d4fcc09dda6dce
[12/13] io_uring: refactor io_req_complete_post()
        commit: 838070b49a0b1466156661b85f6c97dc4033902b
[13/13] io_uring: clean up io_lockdep_assert_cq_locked
        commit: 3cba2895da4a77b5f555f29821487db42f084324

Best regards,