On 6/30/20 4:24 AM, Ming Lei wrote: > Hi Jens, > > More and more drivers want to get batching requests queued from > block layer, such as mmc[1], and tcp based storage drivers[2]. Also > current in-tree users have virtio-scsi, virtio-blk and nvme. > > For none, we already support batching dispatch. > > But for io scheduler, every time we just take one request from scheduler > and pass the single request to blk_mq_dispatch_rq_list(). This way makes > batching dispatch not possible when io scheduler is applied. One reason > is that we don't want to hurt sequential IO performance, becasue IO > merge chance is reduced if more requests are dequeued from scheduler > queue. > > Tries to start the support by dequeuing more requests from scheduler > if budget is enough and device isn't busy. > > Simple fio test over virtio-scsi shows IO can get improved by 5~10%. > > Baolin has tested previous versions and found performance on MMC can be improved. > > Patch 1 ~ 4 are improvement and cleanup, which can't applied without > supporting batching dispatch. > > Patch 5 ~ 6 starts to support batching dispatch from scheduler. Thanks Ming, applied for 5.9. -- Jens Axboe