Re: [PATCH v2 2/2] block/mq-deadline: Prioritize first request

From: Bart Van Assche
Date: Fri Jul 22 2022 - 13:47:19 EST


On 7/22/22 02:51, Wang You wrote:
The test hardware is:
Kunpeng-920, HW-SAS3508+(MG04ACA400N * 2), RAID0.

What is MG04ACA400N? The test results suggest that it is an SSD but this is something that should be mentioned explicitly.

- The test hardware is:
Hygon C86, MG04ACA400N

What is MG04ACA400N?

The test command is:
fio -ioengine=psync -lockmem=1G -buffered=0 -time_based=1 -direct=1 -iodepth=1
-thread -bs=512B -size=110g -numjobs=32 -runtime=300 -group_reporting
-name=read -filename=/dev/sdc -ioscheduler=mq-deadline -rw=read[,write,rw]

The following is the test data:
origin/master:
read iops: 15463 write iops: 5949 rw iops: 574,576

nr_sched_batch = 1:
read iops: 15082 write iops: 6283 rw iops: 783,786

nr_sched_batch = 1, use deadline_head_request:
read iops: 15368 write iops: 6575 rw iops: 907,906

The above results are low enough such that these could come from a hard disk. However, the test results are hard to interpret since the I/O pattern is neither perfectly sequential nor perfectly random (32 sequential jobs). Please provide separate measurements for sequential and random I/O.

The above results show that this patch makes reading from a hard disk slower. Isn't the primary use case of mq-deadline to make reading from hard disks faster? So why should these two patches be applied if these slow down reading from a hard disk?

Thanks,

Bart.