test() {
echo "Running ${TEST_NAME}"
- for ((queue_mode = 1; queue_mode <= 2; queue_mode++)) do
- echo "queue mode $queue_mode"
+ if ! _init_null_blk queue_mode=2 irqmode=2 \
+ completion_nsec=500000000; then
+ return 1
+ fi
- if ! _init_null_blk queue_mode="$queue_mode" irqmode=2 \
- completion_nsec=500000000; then
- continue
- fi
+ dd if=/dev/nullb0 of=/dev/null bs=4096 iflag=direct count=1 status=none &
+ sleep 0.1
+ show_inflight
- dd if=/dev/nullb0 of=/dev/null bs=4096 iflag=direct count=1 status=none &
- sleep 0.1
- show_inflight
+ dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1 status=none &
+ sleep 0.1
+ show_inflight
- dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1 status=none &
- sleep 0.1
- show_inflight
+ wait
+ show_inflight
- wait
- show_inflight
-
- _exit_null_blk
- done
+ _exit_null_blk
echo "Test complete"
}
Running block/017
-queue mode 1
-sysfs inflight reads 1
-sysfs inflight writes 0
-sysfs stat 1
-diskstats 1
-sysfs inflight reads 1
-sysfs inflight writes 1
-sysfs stat 2
-diskstats 2
-sysfs inflight reads 0
-sysfs inflight writes 0
-sysfs stat 0
-diskstats 0
-queue mode 2
sysfs inflight reads 1
sysfs inflight writes 0
sysfs stat 1
}
test() {
- echo "Running ${TEST_NAME}"
-
- for ((queue_mode = 1; queue_mode <= 2; queue_mode++)) do
- local init_read_ms init_write_ms read_ms write_ms
+ local init_read_ms init_write_ms read_ms write_ms
- echo "queue mode $queue_mode"
+ echo "Running ${TEST_NAME}"
- if ! _init_null_blk queue_mode="$queue_mode" irqmode=2 \
- completion_nsec=1000000000; then
- continue
- fi
+ if ! _init_null_blk queue_mode=2 irqmode=2 \
+ completion_nsec=1000000000; then
+ return 1
+ fi
- init_times
- show_times
+ init_times
+ show_times
- dd if=/dev/nullb0 of=/dev/null bs=4096 iflag=direct count=1 status=none
- show_times
+ dd if=/dev/nullb0 of=/dev/null bs=4096 iflag=direct count=1 status=none
+ show_times
- dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1 status=none
- show_times
+ dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1 status=none
+ show_times
- dd if=/dev/nullb0 of=/dev/null bs=4096 iflag=direct count=1 status=none &
- dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1 status=none &
- dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1 status=none &
- wait
- show_times
+ dd if=/dev/nullb0 of=/dev/null bs=4096 iflag=direct count=1 status=none &
+ dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1 status=none &
+ dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1 status=none &
+ wait
+ show_times
- _exit_null_blk
+ _exit_null_blk
- unset init_read_ms init_write_ms read_ms write_ms
- done
+ unset init_read_ms init_write_ms read_ms write_ms
echo "Test complete"
}
Running block/018
-queue mode 1
-read 0 s
-write 0 s
-read 1 s
-write 0 s
-read 1 s
-write 1 s
-read 2 s
-write 3 s
-queue mode 2
read 0 s
write 0 s
read 1 s
+++ /dev/null
-#!/bin/bash
-# SPDX-License-Identifier: GPL-3.0+
-# Copyright (C) 2018 Jens Axboe
-#
-# Smoke test !mq timeout handling with null-blk.
-
-. tests/block/rc
-. common/null_blk
-
-DESCRIPTION="run null-blk with legacy blk path and timeout injection configured"
-
-requires() {
- _have_null_blk && _have_module_param null_blk timeout
-}
-
-test() {
- echo "Running ${TEST_NAME}"
-
- # The format is "<interval>,<probability>,<space>,<times>". Here, we
- # fail 50% of I/Os.
- if ! _init_null_blk queue_mode=1 timeout='1,50,0,-1'; then
- return 1
- fi
-
- local scheds
- # shellcheck disable=SC2207
- scheds=($(sed 's/[][]//g' /sys/block/nullb0/queue/scheduler))
-
- for sched in "${scheds[@]}"; do
- echo "Testing $sched" >> "$FULL"
- echo "$sched" > /sys/block/nullb0/queue/scheduler
- # Do a bunch of I/Os which will timeout and then complete. The
- # only thing we're really testing here is that this doesn't
- # crash or hang.
- for ((i = 0; i < 100; i++)); do
- dd if=/dev/nullb0 of=/dev/null bs=4K count=4 \
- iflag=direct status=none &
- done
- wait
- done
-
- _exit_null_blk
-
- echo "Test complete"
-}
+++ /dev/null
-Running block/022
-Test complete
echo "Running ${TEST_NAME}"
local queue_mode
- for ((queue_mode = 0; queue_mode <= 2; queue_mode++)); do
+ for queue_mode in 0 2; do
if _init_null_blk gb=1 queue_mode="$queue_mode"; then
echo "Queue mode $queue_mode"
dd if=/dev/nullb0 of=/dev/null iflag=direct bs=64k status=none
Running block/023
Queue mode 0
-Queue mode 1
Queue mode 2
Test complete
}
test() {
- echo "Running ${TEST_NAME}"
-
- for ((queue_mode = 1; queue_mode <= 2; queue_mode++)) do
- local init_read_ms init_write_ms read_ms write_ms
+ local init_read_ms init_write_ms read_ms write_ms
- echo "queue mode $queue_mode"
+ echo "Running ${TEST_NAME}"
- # The maximum value for CONFIG_HZ is 1000. I.e., a tick is one
- # millisecond. So, make each I/O take half a millisecond.
- if ! _init_null_blk queue_mode="$queue_mode" irqmode=2 \
- completion_nsec=500000; then
- continue
- fi
+ # The maximum value for CONFIG_HZ is 1000. I.e., a tick is one
+ # millisecond. So, make each I/O take half a millisecond.
+ if ! _init_null_blk queue_mode=2 irqmode=2 \
+ completion_nsec=500000; then
+ return 1
+ fi
- init_times
- show_times
+ init_times
+ show_times
- # 1500 * 0.5 ms is 0.75 seconds, allowing for some overhead so
- # that it rounds to one second.
- dd if=/dev/nullb0 of=/dev/null bs=4096 iflag=direct count=1500 status=none
- show_times
+ # 1500 * 0.5 ms is 0.75 seconds, allowing for some overhead so
+ # that it rounds to one second.
+ dd if=/dev/nullb0 of=/dev/null bs=4096 iflag=direct count=1500 status=none
+ show_times
- dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1500 status=none
- show_times
+ dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1500 status=none
+ show_times
- dd if=/dev/nullb0 of=/dev/null bs=4096 iflag=direct count=1500 status=none &
- dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1500 status=none &
- dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1500 status=none &
- wait
- show_times
+ dd if=/dev/nullb0 of=/dev/null bs=4096 iflag=direct count=1500 status=none &
+ dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1500 status=none &
+ dd if=/dev/zero of=/dev/nullb0 bs=4096 oflag=direct count=1500 status=none &
+ wait
+ show_times
- _exit_null_blk
+ _exit_null_blk
- unset init_read_ms init_write_ms read_ms write_ms
- done
+ unset init_read_ms init_write_ms read_ms write_ms
echo "Test complete"
}
Running block/024
-queue mode 1
-read 0 s
-write 0 s
-read 1 s
-write 0 s
-read 1 s
-write 1 s
-read 2 s
-write 3 s
-queue mode 2
read 0 s
write 0 s
read 1 s