]> www.infradead.org Git - users/hch/blktests.git/commitdiff
Introduce the _io_schedulers() function
authorBart Van Assche <bvanassche@acm.org>
Sun, 27 Mar 2022 15:18:41 +0000 (08:18 -0700)
committerBart Van Assche <bvanassche@acm.org>
Tue, 14 Jun 2022 17:00:13 +0000 (10:00 -0700)
The functionality for retrieving the I/O schedulers supported by a request
queue occurs multiple times. Hence introduce a function for retrieving the
supported I/O schedulers.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
common/multipath-over-rdma
common/rc
tests/block/005
tests/block/014
tests/block/015
tests/block/020
tests/block/021
tests/nvmeof-mp/012
tests/srp/012

index 8b285e636c9d175fc0e77f63360c313b56c855de..f9d7b9a236ce7f1414d90e4bab5e3576d78608fb 100644 (file)
@@ -298,17 +298,6 @@ set_scheduler() {
        fi
 }
 
-# Get block dev scheduler list
-get_scheduler_list() {
-       local b=$1 p
-       p=/sys/block/"$b"/queue/scheduler
-       if [ -e "$p" ]; then
-               sed 's/[][]//g' /sys/block/"$b"/queue/scheduler
-       else
-               return 1
-       fi
-}
-
 # Get a /dev/... path that points at dm device number $1. Set its I/O scheduler
 # to $2 and its timeout to $3. The shell script that includes this file must
 # define a function get_bdev_path() that translates device number $1 into a
index ff3d679d95d65cbd664233771815e45d5a11ca93..818acc3bab19b085a64f78100063eeb0a68eed8f 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -334,6 +334,15 @@ _require_test_dev_is_partition() {
        return 0
 }
 
+# Prints a space-separated list with the names of all I/O schedulers supported
+# by block device $1.
+_io_schedulers() {
+       local path=/sys/class/block/$1/queue/scheduler
+
+       [ -e "${path}" ] || return 1
+       sed 's/[][]//g' "${path}"
+}
+
 # Older versions of xfs_io use pwrite64 and such, so the error messages won't
 # match current versions of xfs_io. See c52086226bc6 ("filter: xfs_io output
 # has dropped "64" from error messages") in xfstests.
index 77b9e2f57203b25f0bb9728c7262365cbe256eb8..bd04a0073877a9f9cd150b3ef1a4b1cf47d5beb5 100755 (executable)
@@ -17,9 +17,8 @@ requires() {
 test_device() {
        echo "Running ${TEST_NAME}"
 
-       local scheds
        # shellcheck disable=SC2207
-       scheds=($(sed 's/[][]//g' "${TEST_DEV_SYSFS}/queue/scheduler"))
+       local scheds=($(_io_schedulers "$(basename "${TEST_DEV_SYSFS}")"))
 
        if _test_dev_is_rotational; then
                size="32m"
index 449046a20f8c75ec0bd664e53b6b4308b14362f7..facd4bcc531104ccca1fa7c92487d94c21ce4acb 100755 (executable)
@@ -22,11 +22,7 @@ test() {
                return 1
        fi
 
-       local scheds
-       # shellcheck disable=SC2207
-       scheds=($(sed 's/[][]//g' /sys/block/nullb0/queue/scheduler))
-
-       for sched in "${scheds[@]}"; do
+       for sched in $(_io_schedulers nullb0); 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
index 2e5cf358a6b761a8fe67037959ea70954e52a8a6..389c67f9d190c2663ec5b937f2e399f569b0527f 100755 (executable)
@@ -24,11 +24,7 @@ test() {
                return 1
        fi
 
-       local scheds
-       # shellcheck disable=SC2207
-       scheds=($(sed 's/[][]//g' /sys/block/nullb0/queue/scheduler))
-
-       for sched in "${scheds[@]}"; do
+       for sched in $(_io_schedulers nullb0); do
                echo "Testing $sched" >> "$FULL"
                echo "$sched" > /sys/block/nullb0/queue/scheduler
                dd if=/dev/nullb0 of=/dev/null bs=4K count=$((512 * 1024)) \
index 3e8cbbd13ee90b637cb95b2915caec87eeba5ff8..5ffa23248804a78b047d2cd6b20f3ad34904ea99 100755 (executable)
@@ -25,16 +25,12 @@ test() {
                return 1
        fi
 
-       local scheds
-       # shellcheck disable=SC2207
-       scheds=($(sed 's/[][]//g' /sys/block/nullb1/queue/scheduler))
-
        local max_iodepth=$(($(cat /proc/sys/fs/aio-max-nr) / $(nproc)))
        local iodepth=1024
        if (( iodepth > max_iodepth )); then
                iodepth=$max_iodepth
        fi
-       for sched in "${scheds[@]}"; do
+       for sched in $(_io_schedulers nullb1); do
                echo "Testing $sched" >> "$FULL"
                echo "$sched" > /sys/block/nullb1/queue/scheduler
                _fio_perf --bs=4k --ioengine=libaio --iodepth=$iodepth \
index 89ebcd068dc8a02f185d4c82089571f5bdef8f86..525d707bce8a7368f392706d0e01e583e796a145 100755 (executable)
@@ -26,11 +26,8 @@ test() {
 
        local max_nr
        local nr
-       local scheds
-       # shellcheck disable=SC2207
-       scheds=($(sed 's/[][]//g' /sys/block/nullb1/queue/scheduler))
 
-       for sched in "${scheds[@]}"; do
+       for sched in $(_io_schedulers nullb1); do
                echo "Testing $sched" >> "$FULL"
                echo "$sched" > /sys/block/nullb1/queue/scheduler
                max_nr="$(cat /sys/block/nullb1/queue/nr_requests)"
index 8b2e918773e588c5bd98bb47e35db935cc26acdb..b2d7a6351bf70cc0ed689626801672c2fe992fc5 100755 (executable)
@@ -18,7 +18,7 @@ test_io_schedulers() {
                use_blk_mq ${mq} || return $?
                dev=$(get_bdev 0) || return $?
                dm=$(basename "$(readlink -f "${dev}")") || return $?
-               scheds="$(get_scheduler_list "$dm")" || return $?
+               scheds="$(_io_schedulers "$dm")" || return $?
                for sched in $scheds; do
                        set_scheduler "$dm" "$sched" \
                                      >>"$FULL" 2>&1 || continue
index 1a2fc6d2dc2f40c258014c89286ba05c39e62781..b862ac46c28c896b3d4645fe00a6fce80d3d17df 100755 (executable)
@@ -22,7 +22,7 @@ test_io_schedulers() {
                use_blk_mq ${mq} ${mq} || return $?
                dev=$(get_bdev 0) || return $?
                dm=$(basename "$(readlink -f "${dev}")") || return $?
-               scheds="$(get_scheduler_list "$dm")" || return $?
+               scheds="$(_io_schedulers "$dm")" || return $?
                for sched in $scheds; do
                        set_scheduler "$dm" "$sched" \
                                      >>"$FULL" 2>&1 || continue