[PATCH v4 0/3] io_uring: Pass the whole sqe to commands

Breno Leitao posted 3 patches 2 years, 7 months ago
drivers/block/ublk_drv.c  | 26 +++++++++++++-------------
drivers/nvme/host/ioctl.c |  2 +-
include/linux/io_uring.h  |  7 ++++++-
io_uring/io_uring.h       | 10 ++++++++++
io_uring/opdef.c          |  2 +-
io_uring/uring_cmd.c      | 12 +++---------
io_uring/uring_cmd.h      |  8 --------
7 files changed, 34 insertions(+), 33 deletions(-)
[PATCH v4 0/3] io_uring: Pass the whole sqe to commands
Posted by Breno Leitao 2 years, 7 months ago
These three patches prepare for the sock support in the io_uring cmd, as
described in the following RFC:

Link: https://lore.kernel.org/lkml/20230406144330.1932798-1-leitao@debian.org/

Since the support linked above depends on other refactors, such as the sock
ioctl() sock refactor, I would like to start integrating patches that have
consensus and can bring value right now.  This will also reduce the
patchset size later.

Regarding to these three patches, they are simple changes that turn
io_uring cmd subsystem more flexible (by passing the whole SQE to the
command), and cleaning up an unnecessary compile check.

These patches were tested by creating a file system and mounting an NVME disk
using ubdsrv/ublkb0.

Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>

V1 -> V2 :
  * Create a helper to return the size of the SQE
V2 -> V3:
  * Transformed uring_sqe_size() into a proper function
  * Fixed some commit messages
  * Created a helper function for nvme/host to avoid casting
  * Added a fourth patch to avoid ublk_drv's casts by using a proper helper
V3 -> V4:
  * Create a function that returns a null pointer (io_uring_sqe_cmd()),
    and uses it to get the cmd private data from the sqe.

Breno Leitao (3):
  io_uring: Create a helper to return the SQE size
  io_uring: Pass whole sqe to commands
  io_uring: Remove unnecessary BUILD_BUG_ON

 drivers/block/ublk_drv.c  | 26 +++++++++++++-------------
 drivers/nvme/host/ioctl.c |  2 +-
 include/linux/io_uring.h  |  7 ++++++-
 io_uring/io_uring.h       | 10 ++++++++++
 io_uring/opdef.c          |  2 +-
 io_uring/uring_cmd.c      | 12 +++---------
 io_uring/uring_cmd.h      |  8 --------
 7 files changed, 34 insertions(+), 33 deletions(-)

-- 
2.34.1
Re: [PATCH v4 0/3] io_uring: Pass the whole sqe to commands
Posted by Jens Axboe 2 years, 7 months ago
On 5/4/23 6:18 AM, Breno Leitao wrote:
> These three patches prepare for the sock support in the io_uring cmd, as
> described in the following RFC:
> 
> Link: https://lore.kernel.org/lkml/20230406144330.1932798-1-leitao@debian.org/
> 
> Since the support linked above depends on other refactors, such as the sock
> ioctl() sock refactor, I would like to start integrating patches that have
> consensus and can bring value right now.  This will also reduce the
> patchset size later.
> 
> Regarding to these three patches, they are simple changes that turn
> io_uring cmd subsystem more flexible (by passing the whole SQE to the
> command), and cleaning up an unnecessary compile check.
> 
> These patches were tested by creating a file system and mounting an NVME disk
> using ubdsrv/ublkb0.

Thanks Breno, applied!

-- 
Jens Axboe


Re: [PATCH v4 0/3] io_uring: Pass the whole sqe to commands
Posted by Pavel Begunkov 2 years, 7 months ago
On 5/4/23 13:18, Breno Leitao wrote:
> These three patches prepare for the sock support in the io_uring cmd, as
> described in the following RFC:

It doesn't apply, seems there are conflicts with ublk, but
looks good otherwise.

Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>


> Link: https://lore.kernel.org/lkml/20230406144330.1932798-1-leitao@debian.org/
> 
> Since the support linked above depends on other refactors, such as the sock
> ioctl() sock refactor, I would like to start integrating patches that have
> consensus and can bring value right now.  This will also reduce the
> patchset size later.
> 
> Regarding to these three patches, they are simple changes that turn
> io_uring cmd subsystem more flexible (by passing the whole SQE to the
> command), and cleaning up an unnecessary compile check.
> 
> These patches were tested by creating a file system and mounting an NVME disk
> using ubdsrv/ublkb0.
> 
> Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
> 
> V1 -> V2 :
>    * Create a helper to return the size of the SQE
> V2 -> V3:
>    * Transformed uring_sqe_size() into a proper function
>    * Fixed some commit messages
>    * Created a helper function for nvme/host to avoid casting
>    * Added a fourth patch to avoid ublk_drv's casts by using a proper helper
> V3 -> V4:
>    * Create a function that returns a null pointer (io_uring_sqe_cmd()),
>      and uses it to get the cmd private data from the sqe.
> 
> Breno Leitao (3):
>    io_uring: Create a helper to return the SQE size
>    io_uring: Pass whole sqe to commands
>    io_uring: Remove unnecessary BUILD_BUG_ON
> 
>   drivers/block/ublk_drv.c  | 26 +++++++++++++-------------
>   drivers/nvme/host/ioctl.c |  2 +-
>   include/linux/io_uring.h  |  7 ++++++-
>   io_uring/io_uring.h       | 10 ++++++++++
>   io_uring/opdef.c          |  2 +-
>   io_uring/uring_cmd.c      | 12 +++---------
>   io_uring/uring_cmd.h      |  8 --------
>   7 files changed, 34 insertions(+), 33 deletions(-)
> 

-- 
Pavel Begunkov