Hi jens, We already know that batching requests can increase the storage performance of some devices, but after testing, I found that it will reduce the performance of some low and medium speed devices when using the scheduler (especially mq-deadline), such as rotational disks connected to a raid. In order to balance the performance difference between different devices, a more sophisticated mechanism may be needed to control the number of batching (such as sometimes 1 is better), but obviously this is not easy. At the same time I noticed that when the mq-deadline scheduler select a request for a higher sector outside the batch, deadline_fifo_request is used to select the request within the fifo and restart the batch. Selecting a request from a fifo tends to satisfy the request's timeline, but it is not always very urgent. So in the case of no expire, can the selection strategy of the first request in the batch be changed? Because in devices with rotation characteristics, proper sector access order is beneficial to performance. This patch series includes the following two parts: - Added a temporary sys interface nr_sched_batch to control the number of batching requests. - Added a deadline_head_request function to select the request from the first of the red-black tree instead of the fifo when appropriate. Thanks, Wang. Wang You (2): block: Introduce nr_sched_batch sys interface block/mq-deadline: Prioritize first request block/blk-mq-sched.c | 4 +++- block/blk-sysfs.c | 34 ++++++++++++++++++++++++++++++++++ block/mq-deadline.c | 42 +++++++++++++++++++++++++++++++++++++++--- include/linux/blkdev.h | 1 + 4 files changed, 77 insertions(+), 4 deletions(-) -- 2.27.0