Re: [PATCH blktests 2/3] Add I/O scheduler tests for queue depth 1

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

 



On 4/27/22 23:27, Shinichiro Kawasaki wrote:
On Apr 27, 2022 / 14:31, Bart Van Assche wrote:
Some block devices, e.g. USB sticks, only support queue depth 1. The
QD=1 code paths do not get tested routinely. Hence add tests for the
QD=1 use case.

Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx>

I tried this new test case on recent Fedora kernel 5.16.20-200.fc35.x86_64 and
Intel Core i9 machine, then observed failure:

$ sudo ./check block/032
block/032 (test I/O scheduler performance of null_blk with queue_depth 1) [failed]
     bfq          679 vs 243: fail  ...  679 vs 252: fail
     kyber        542 vs 243: fail  ...  551 vs 252: fail
     mq-deadline  577 vs 243: fail  ...  572 vs 252: fail
     runtime      20.514s           ...  20.660s
     --- tests/block/032.out     2022-04-27 22:02:46.602861565 -0700
     +++ /home/shin/kts/kernel-test-suite/src/blktests/results/nodev/block/032.out.bad2022-04-27 23:18:48.470170788 -0700
     @@ -1,2 +1,2 @@
      Running block/032
     -Test complete
     +Test failed

I tried v5.18-rcX kernel versions and machines (QEMU or VMware) but the test
case failed on all of the trials. Do I miss anything to make the test case pass?

Hi Shinichiro,

The two tests added by this patch pass when using the legacy block layer (kernel v4.19) but not when using blk-mq. I see this as a (performance) bug in blk-mq. With blk-mq an excessive number of queue runs is triggered for QD=1 if multiple processes try to submit I/O concurrently.

Thanks,

Bart.





[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