All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chen-Yu Tsai <wenst@chromium.org>
To: Jens Axboe <axboe@kernel.dk>,
	Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	io-uring <io-uring@vger.kernel.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [GIT PULL] Final io_uring updates for 6.4-rc1
Date: Mon, 8 May 2023 11:18:52 +0800	[thread overview]
Message-ID: <20230508031852.GA4029098@google.com> (raw)
In-Reply-To: <9b2e791d-aeba-a2c7-1877-797ff5c680a3@kernel.dk>

Hi,

On Sun, May 07, 2023 at 06:00:48AM -0600, Jens Axboe wrote:
> Hi Linus,
> 
> Nothing major in here, just two different parts:
> 
> - Small series from Breno that enables passing the full SQE down
>   for ->uring_cmd(). This is a prerequisite for enabling full network
>   socket operations. Queued up a bit late because of some stylistic
>   concerns that got resolved, would be nice to have this in 6.4-rc1
>   so the dependent work will be easier to handle for 6.5.
> 
> - Fix for the huge page coalescing, which was a regression introduced
>   in the 6.3 kernel release (Tobias).
> 
> Note that this will throw a merge conflict in the ublk_drv code, due
> to this branch still being based off the original for-6.4/io_uring
> branch. Resolution is pretty straight forward, I'm including it below
> for reference.
> 
> Please pull!
> 
> 
> The following changes since commit 3c85cc43c8e7855d202da184baf00c7b8eeacf71:
> 
>   Revert "io_uring/rsrc: disallow multi-source reg buffers" (2023-04-20 06:51:48 -0600)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.dk/linux.git tags/for-6.4/io_uring-2023-05-07
> 
> for you to fetch changes up to d2b7fa6174bc4260e496cbf84375c73636914641:
> 
>   io_uring: Remove unnecessary BUILD_BUG_ON (2023-05-04 08:19:05 -0600)
> 
> ----------------------------------------------------------------
> for-6.4/io_uring-2023-05-07
> 
> ----------------------------------------------------------------
> Breno Leitao (3):
>       io_uring: Create a helper to return the SQE size
>       io_uring: Pass whole sqe to commands

This commit causes broken builds when IO_URING=n and NVME_CORE=y, as
io_uring_sqe_cmd(), called in drivers/nvme/host/ioctl.c, ends up being
undefined. This was also reported [1] by 0-day bot on your branch
yesterday, but it's worse now that Linus merged the pull request.

Not sure what the better fix would be. Move io_uring_sqe_cmd() outside
of the "#if defined(CONFIG_IO_URING)" block?


ChenYu

[1] https://lore.kernel.org/all/202305080039.r7cguaXB-lkp@intel.com/

>       io_uring: Remove unnecessary BUILD_BUG_ON
> 
> Tobias Holl (1):
>       io_uring/rsrc: check for nonconsecutive pages
> 
>  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/rsrc.c           |  7 ++++++-
>  io_uring/uring_cmd.c      | 12 +++---------
>  io_uring/uring_cmd.h      |  8 --------
>  8 files changed, 40 insertions(+), 34 deletions(-)
> 
> Merge resolution:
> 
> commit 775e045e380626ce769d95badc79ea08edc1b15d
> Merge: efd141da30bb d2b7fa6174bc
> Author: Jens Axboe <axboe@kernel.dk>
> Date:   Thu May 4 08:22:24 2023 -0600
> 
>     Merge branch 'for-6.4/io_uring' into test
>     
>     * for-6.4/io_uring:
>       io_uring: Remove unnecessary BUILD_BUG_ON
>       io_uring: Pass whole sqe to commands
>       io_uring: Create a helper to return the SQE size
>       io_uring/rsrc: check for nonconsecutive pages
>     
>     Signed-off-by: Jens Axboe <axboe@kernel.dk>
> 
> diff --cc drivers/block/ublk_drv.c
> index 72a5cde9a5af,42f4d7ca962e..0af6a41f92b2
> --- a/drivers/block/ublk_drv.c
> +++ b/drivers/block/ublk_drv.c
> @@@ -1397,23 -1362,6 +1397,23 @@@ static int __ublk_ch_uring_cmd(struct i
>   	return -EIOCBQUEUED;
>   }
>   
>  +static int ublk_ch_uring_cmd(struct io_uring_cmd *cmd, unsigned int issue_flags)
>  +{
> - 	struct ublksrv_io_cmd *ub_src = (struct ublksrv_io_cmd *) cmd->cmd;
> ++	const struct ublksrv_io_cmd *ub_src = io_uring_sqe_cmd(cmd->sqe);
>  +	struct ublksrv_io_cmd ub_cmd;
>  +
>  +	/*
>  +	 * Not necessary for async retry, but let's keep it simple and always
>  +	 * copy the values to avoid any potential reuse.
>  +	 */
>  +	ub_cmd.q_id = READ_ONCE(ub_src->q_id);
>  +	ub_cmd.tag = READ_ONCE(ub_src->tag);
>  +	ub_cmd.result = READ_ONCE(ub_src->result);
>  +	ub_cmd.addr = READ_ONCE(ub_src->addr);
>  +
>  +	return __ublk_ch_uring_cmd(cmd, issue_flags, &ub_cmd);
>  +}
>  +
>   static const struct file_operations ublk_ch_fops = {
>   	.owner = THIS_MODULE,
>   	.open = ublk_ch_open,
> @@@ -2240,9 -2171,8 +2240,9 @@@ exit
>   static int ublk_ctrl_uring_cmd(struct io_uring_cmd *cmd,
>   		unsigned int issue_flags)
>   {
> - 	struct ublksrv_ctrl_cmd *header = (struct ublksrv_ctrl_cmd *)cmd->cmd;
> + 	const struct ublksrv_ctrl_cmd *header = io_uring_sqe_cmd(cmd->sqe);
>   	struct ublk_device *ub = NULL;
>  +	u32 cmd_op = cmd->cmd_op;
>   	int ret = -EINVAL;
>   
>   	if (issue_flags & IO_URING_F_NONBLOCK)
> 
> -- 
> Jens Axboe
> 
> 

  parent reply	other threads:[~2023-05-08  3:19 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-07 12:00 [GIT PULL] Final io_uring updates for 6.4-rc1 Jens Axboe
2023-05-07 16:59 ` Linus Torvalds
2023-05-08 18:41   ` Jens Axboe
2023-05-07 18:12 ` pr-tracker-bot
2023-05-08  3:18 ` Chen-Yu Tsai [this message]
2023-05-08 18:41   ` Jens Axboe
2023-05-09  2:35     ` Chen-Yu Tsai
2023-05-09 13:59       ` Jens Axboe
2023-05-09 16:52         ` Linus Torvalds
2023-05-09 16:55           ` Jens Axboe

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 \
    --in-reply-to=20230508031852.GA4029098@google.com \
    --to=wenst@chromium.org \
    --cc=axboe@kernel.dk \
    --cc=io-uring@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.