ublk: don't dereference ublk_queue in ublk_ch_uring_cmd_local()

For ublk servers with many ublk queues, accessing the ublk_queue to
handle a ublk command is a frequent cache miss. Get the queue depth from
the ublk_device instead, which is accessed just before.

Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Caleb Sander Mateos
2025-09-17 19:49:41 -06:00
committed by Jens Axboe
parent d74a383ec7
commit 5125535f90

View File

@@ -2333,7 +2333,7 @@ static int ublk_ch_uring_cmd_local(struct io_uring_cmd *cmd,
ubq = ublk_get_queue(ub, q_id);
if (tag >= ubq->q_depth)
if (tag >= ub->dev_info.queue_depth)
goto out;
io = &ubq->ios[tag];