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.