[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aAAJVZ8Bob8rosaa@dev-ushankar.dev.purestorage.com>
Date: Wed, 16 Apr 2025 13:47:33 -0600
From: Uday Shankar <ushankar@...estorage.com>
To: Caleb Sander Mateos <csander@...estorage.com>
Cc: Ming Lei <ming.lei@...hat.com>, Jens Axboe <axboe@...nel.dk>,
linux-block@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ublk: remove unnecessary ubq checks
On Wed, Apr 16, 2025 at 11:01:53AM -0600, Caleb Sander Mateos wrote:
> ublk_init_queues() ensures that all nr_hw_queues queues are initialized,
> with each ublk_queue's q_id set to its index. And ublk_init_queues() is
> called before ublk_add_chdev(), which creates the cdev. Is is therefore
> impossible for the !ubq || ub_cmd->q_id != ubq->q_id condition to hit in
> __ublk_ch_uring_cmd(). Remove it to avoids some branches in the I/O path.
>
> Signed-off-by: Caleb Sander Mateos <csander@...estorage.com>
Reviewed-by: Uday Shankar <ushankar@...estorage.com>
> ---
> drivers/block/ublk_drv.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c
> index cdb1543fa4a9..bc86231f5e27 100644
> --- a/drivers/block/ublk_drv.c
> +++ b/drivers/block/ublk_drv.c
> @@ -1947,13 +1947,10 @@ static int __ublk_ch_uring_cmd(struct io_uring_cmd *cmd,
>
> if (ub_cmd->q_id >= ub->dev_info.nr_hw_queues)
> goto out;
>
> ubq = ublk_get_queue(ub, ub_cmd->q_id);
> - if (!ubq || ub_cmd->q_id != ubq->q_id)
> - goto out;
> -
> if (ubq->ubq_daemon && ubq->ubq_daemon != current)
> goto out;
>
> if (tag >= ubq->q_depth)
> goto out;
> --
> 2.45.2
>
Powered by blists - more mailing lists