aboutsummaryrefslogtreecommitdiff
path: root/kernel/user.c
diff options
context:
space:
mode:
authorMing Lei2022-11-21 23:56:45 +0800
committerJens Axboe2022-11-23 20:36:57 -0700
commit7d4a93176e0142ce16d23c849a47d5b00b856296 (patch)
treece04169d8886907abd6a1091f481ccda80622590 /kernel/user.c
parent7e8a05b47ba7200f333eefd19979eeb4d273ceec (diff)
ublk_drv: don't forward io commands in reserve order
Either ublk_can_use_task_work() is true or not, io commands are forwarded to ublk server in reverse order, since llist_add() is always to add one element to the head of the list. Even though block layer doesn't guarantee request dispatch order, requests should be sent to hardware in the sequence order generated from io scheduler, which usually considers the request's LBA, and order is often important for HDD. So forward io commands in the sequence made from io scheduler by aligning task work with current io_uring command's batch handling, and it has been observed that both can get similar performance data if IORING_SETUP_COOP_TASKRUN is set from ublk server. Reported-by: Andreas Hindborg <andreas.hindborg@wdc.com> Cc: Damien Le Moal <damien.lemoal@opensource.wdc.com> Signed-off-by: Ming Lei <ming.lei@redhat.com> Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> Reviewed-by: ZiyangZhang <ZiyangZhang@linux.alibaba.com> Link: https://lore.kernel.org/r/20221121155645.396272-1-ming.lei@redhat.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'kernel/user.c')
0 files changed, 0 insertions, 0 deletions