Re: [PATCH V2] ublk: build batch from IOs in same io_ring_ctx and io task

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 24, 2025 at 7:26 PM Ming Lei <ming.lei@xxxxxxxxxx> wrote:
>
> ublk_queue_cmd_list() dispatches the whole batch list by scheduling task
> work via the tail request's io_uring_cmd, this way is fine even though
> more than one io_ring_ctx are involved for this batch since it is just
> one running context.
>
> However, the task work handler ublk_cmd_list_tw_cb() takes `issue_flags`
> of tail uring_cmd's io_ring_ctx for completing all commands. This way is
> wrong if any uring_cmd is issued from different io_ring_ctx.
>
> Fixes it by always building batch IOs from same io_ring_ctx and io task
> because ublk_dispatch_req() does validate task context, and IO needs to
> be aborted in case of running from fallback task work context.
>
> For typical per-queue or per-io daemon implementation, this way shouldn't
> make difference from performance viewpoint, because single io_ring_ctx is
> taken in each daemon for normal use case.
>
> Fixes: d796cea7b9f3 ("ublk: implement ->queue_rqs()")
> Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx>

Reviewed-by: Caleb Sander Mateos <csander@xxxxxxxxxxxxxxx>





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux