From: Yi Zhang <yi.zhang@redhat.com>
To: osandov@osandov.com, bvanassche@acm.org
Cc: linux-block@vger.kernel.org, linux-nvme@lists.infradead.org,
sagi@grimberg.me
Subject: [PATCH V3 blktests 3/5] nvmeof-mp/012, srp/012: fix the scheduler list
Date: Thu, 26 Nov 2020 16:35:30 +0800 [thread overview]
Message-ID: <20201126083532.27509-4-yi.zhang@redhat.com> (raw)
In-Reply-To: <20201126083532.27509-1-yi.zhang@redhat.com>
There is no cfq scheduler and new added kyber scheduler in lastest kernel,
introduce get_scheduler_list and fix nvmeof-mp/012 srp/012
To reproduce it:
$ ./check nvmeof-mp/012
nvmeof-mp/012 (dm-mpath on top of multiple I/O schedulers) [passed]
runtime 5.922s ... 8.804s
$ cat results/nodev/nvmeof-mp/012.full | grep -n "Changing scheduler"
31:Changing scheduler of dm-3 from mq-deadline kyber [bfq] none into cfq failed
47:Changing scheduler of dm-3 from mq-deadline kyber [bfq] none into cfq failed
Signed-off-by: Yi Zhang <yi.zhang@redhat.com>
---
common/multipath-over-rdma | 11 +++++++++++
tests/nvmeof-mp/012 | 10 ++++++----
tests/srp/012 | 10 ++++++----
3 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/common/multipath-over-rdma b/common/multipath-over-rdma
index ebc5939..ba6fa0d 100644
--- a/common/multipath-over-rdma
+++ b/common/multipath-over-rdma
@@ -326,6 +326,17 @@ 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
diff --git a/tests/nvmeof-mp/012 b/tests/nvmeof-mp/012
index ae6a92c..8b2e918 100755
--- a/tests/nvmeof-mp/012
+++ b/tests/nvmeof-mp/012
@@ -8,7 +8,7 @@ DESCRIPTION="dm-mpath on top of multiple I/O schedulers"
QUICK=1
test_io_schedulers() {
- local dev m
+ local dev m dm scheds
# Load all I/O scheduler kernel modules
for m in "/lib/modules/$(uname -r)/kernel/block/"*.ko; do
@@ -17,15 +17,17 @@ test_io_schedulers() {
for mq in y n; do
use_blk_mq ${mq} || return $?
dev=$(get_bdev 0) || return $?
- for sched in noop deadline bfq cfq; do
- set_scheduler "$(basename "$(readlink -f "${dev}")")" $sched \
+ dm=$(basename "$(readlink -f "${dev}")") || return $?
+ scheds="$(get_scheduler_list "$dm")" || return $?
+ for sched in $scheds; do
+ set_scheduler "$dm" "$sched" \
>>"$FULL" 2>&1 || continue
echo "I/O scheduler: $sched; use_blk_mq: $mq" >>"$FULL"
run_fio --verify=md5 --rw=randwrite --bs=4K --size=64K \
--ioengine=libaio --iodepth=64 \
--iodepth_batch=32 --group_reporting --sync=1 \
--direct=1 --filename="$dev" \
- --name=${sched} --thread --numjobs=1 \
+ --name="${sched}" --thread --numjobs=1 \
--output="${RESULTS_DIR}/nvmeof-mp/012-${sched}-${mq}.txt" \
>>"$FULL" ||
return $?
diff --git a/tests/srp/012 b/tests/srp/012
index 20c6daf..ffd56ef 100755
--- a/tests/srp/012
+++ b/tests/srp/012
@@ -8,7 +8,7 @@ DESCRIPTION="dm-mpath on top of multiple I/O schedulers"
QUICK=1
test_io_schedulers() {
- local dev m
+ local dev m dm scheds
# Load all I/O scheduler kernel modules
for m in "/lib/modules/$(uname -r)/kernel/block/"*.ko; do
@@ -18,15 +18,17 @@ test_io_schedulers() {
[ $mq = n ] && ! _have_legacy_dm && continue
use_blk_mq ${mq} ${mq} || return $?
dev=$(get_bdev 0) || return $?
- for sched in noop deadline bfq cfq; do
- set_scheduler "$(basename "$(readlink -f "${dev}")")" $sched \
+ dm=$(basename "$(readlink -f "${dev}")") || return $?
+ scheds="$(get_scheduler_list "$dm")" || return $?
+ for sched in $scheds; do
+ set_scheduler "$dm" "$sched" \
>>"$FULL" 2>&1 || continue
echo "I/O scheduler: $sched; use_blk_mq: $mq" >>"$FULL"
run_fio --verify=md5 --rw=randwrite --bs=4K --size=64K \
--ioengine=libaio --iodepth=64 \
--iodepth_batch=32 --group_reporting --sync=1 \
--direct=1 --filename="$dev" \
- --name=${sched} --thread --numjobs=1 \
+ --name="${sched}" --thread --numjobs=1 \
--output="${RESULTS_DIR}/srp/012-${sched}-${mq}.txt" \
>>"$FULL" ||
return $?
--
2.21.0
next prev parent reply other threads:[~2020-11-26 8:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-26 8:35 [PATCH V3 blktests 0/5] nvmeof-mp/srp/nvme-rdma misc fix and enhancement Yi Zhang
2020-11-26 8:35 ` [PATCH V3 blktests 1/5] tests/srp/rc: update the ib_srpt module name Yi Zhang
2020-11-26 8:35 ` [PATCH V3 blktests 2/5] tests/nvmeof-mp/rc: run nvmeof-mp tests if we set multipath=N Yi Zhang
2020-11-26 8:35 ` Yi Zhang [this message]
2020-11-26 16:29 ` [PATCH V3 blktests 3/5] nvmeof-mp/012, srp/012: fix the scheduler list Bart Van Assche
2020-11-26 8:35 ` [PATCH V3 blktests 4/5] common/rc: _have_iproute2 fix for "ip -V" change Yi Zhang
2020-11-26 16:30 ` Bart Van Assche
2020-11-26 8:35 ` [PATCH V3 blktests 5/5] common/multipath-over-rdma: allow to set use_siw Yi Zhang
2020-11-26 16:31 ` Bart Van Assche
2021-01-04 22:48 ` [PATCH V3 blktests 0/5] nvmeof-mp/srp/nvme-rdma misc fix and enhancement Omar Sandoval
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201126083532.27509-4-yi.zhang@redhat.com \
--to=yi.zhang@redhat.com \
--cc=bvanassche@acm.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=osandov@osandov.com \
--cc=sagi@grimberg.me \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).