From 843ca2128754417e8793415390046d2fd1b7aae7 Mon Sep 17 00:00:00 2001 From: Tomasz Kulasek Date: Tue, 14 May 2019 13:47:34 +0200 Subject: [PATCH] scripts/fio.py: fix sysfs delay After iSCSI login sysfs is not updated immediately, but when session is initialized. It can take a while and causes that sometimes scripts cannot write to sysfs. Change-Id: Ie4fa512704f022041bb3d9ab02dbb4210ddd04a0 Signed-off-by: Tomasz Kulasek Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/454890 Tested-by: SPDK CI Jenkins Reviewed-by: Tomasz Zawadzki Reviewed-by: Maciej Szwed Reviewed-by: Jim Harris Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto --- scripts/fio.py | 12 ++++++++++++ test/iscsi_tgt/digests/digests.sh | 1 - test/iscsi_tgt/fio/fio.sh | 1 - test/iscsi_tgt/ip_migration/ip_migration.sh | 1 - test/iscsi_tgt/multiconnection/multiconnection.sh | 1 - test/iscsi_tgt/nvme_remote/fio_remote_nvme.sh | 1 - test/iscsi_tgt/rbd/rbd.sh | 1 - test/iscsi_tgt/reset/reset.sh | 1 - 8 files changed, 12 insertions(+), 7 deletions(-) diff --git a/scripts/fio.py b/scripts/fio.py index 04eeed6ea..fc10031fe 100755 --- a/scripts/fio.py +++ b/scripts/fio.py @@ -4,6 +4,8 @@ from subprocess import check_call, call, check_output, Popen, PIPE, CalledProces import re import sys import signal +import os.path +import time fio_template = """ [global] @@ -135,6 +137,16 @@ def set_device_parameter(devices, filename_template, value): def configure_devices(devices): + + for dev in devices: + retry = 30 + while retry > 0: + if os.path.exists("/sys/block/%s/queue/nomerges" % dev): + break + else: + retry = retry - 1 + time.sleep(0.1) + set_device_parameter(devices, "/sys/block/%s/queue/nomerges", "2") set_device_parameter(devices, "/sys/block/%s/queue/nr_requests", "128") requested_qd = 128 diff --git a/test/iscsi_tgt/digests/digests.sh b/test/iscsi_tgt/digests/digests.sh index a36c40faa..63154f70a 100755 --- a/test/iscsi_tgt/digests/digests.sh +++ b/test/iscsi_tgt/digests/digests.sh @@ -14,7 +14,6 @@ function node_login_fio_logout() { iscsiadm -m node -p $TARGET_IP:$ISCSI_PORT -o update -n node.conn[0].iscsi.$arg done iscsiadm -m node --login -p $TARGET_IP:$ISCSI_PORT - sleep 1 $fio_py iscsi 512 1 write 2 1 $fio_py iscsi 512 1 read 2 1 iscsiadm -m node --logout -p $TARGET_IP:$ISCSI_PORT diff --git a/test/iscsi_tgt/fio/fio.sh b/test/iscsi_tgt/fio/fio.sh index 51edfd30c..00f26c0b5 100755 --- a/test/iscsi_tgt/fio/fio.sh +++ b/test/iscsi_tgt/fio/fio.sh @@ -95,7 +95,6 @@ iscsiadm -m node --login -p $TARGET_IP:$ISCSI_PORT trap "iscsicleanup; killprocess $pid; iscsitestfini $1 $2; delete_tmp_files; exit 1" SIGINT SIGTERM EXIT -sleep 1 $fio_py iscsi 4096 1 randrw 1 1 verify $fio_py iscsi 131072 32 randrw 1 1 verify $fio_py iscsi 524288 128 randrw 1 1 verify diff --git a/test/iscsi_tgt/ip_migration/ip_migration.sh b/test/iscsi_tgt/ip_migration/ip_migration.sh index 5059652df..28b9e7d8a 100755 --- a/test/iscsi_tgt/ip_migration/ip_migration.sh +++ b/test/iscsi_tgt/ip_migration/ip_migration.sh @@ -74,7 +74,6 @@ sleep 1 iscsiadm -m node --login -p $MIGRATION_ADDRESS:$ISCSI_PORT # fio tests for multi-process -sleep 1 $fio_py iscsi 4096 32 randrw 10 1 & fiopid=$! sleep 5 diff --git a/test/iscsi_tgt/multiconnection/multiconnection.sh b/test/iscsi_tgt/multiconnection/multiconnection.sh index 7b4e64aa6..4b49f8735 100755 --- a/test/iscsi_tgt/multiconnection/multiconnection.sh +++ b/test/iscsi_tgt/multiconnection/multiconnection.sh @@ -71,7 +71,6 @@ sleep 1 echo "Logging into iSCSI target." iscsiadm -m discovery -t sendtargets -p $TARGET_IP:$ISCSI_PORT iscsiadm -m node --login -p $TARGET_IP:$ISCSI_PORT -sleep 1 echo "Running FIO" $fio_py iscsi 131072 64 randrw 5 1 diff --git a/test/iscsi_tgt/nvme_remote/fio_remote_nvme.sh b/test/iscsi_tgt/nvme_remote/fio_remote_nvme.sh index f187805fa..b43949bc6 100755 --- a/test/iscsi_tgt/nvme_remote/fio_remote_nvme.sh +++ b/test/iscsi_tgt/nvme_remote/fio_remote_nvme.sh @@ -83,7 +83,6 @@ run_nvme_remote "local" trap "iscsicleanup; killprocess $iscsipid; \ rm -f ./local-job0-0-verify.state; iscsitestfini $1 $2; nvmftestfini; exit 1" SIGINT SIGTERM EXIT -sleep 1 echo "Running FIO" $fio_py iscsi 4096 1 randrw 1 1 verify diff --git a/test/iscsi_tgt/rbd/rbd.sh b/test/iscsi_tgt/rbd/rbd.sh index 83ecc3c62..571be6ca9 100755 --- a/test/iscsi_tgt/rbd/rbd.sh +++ b/test/iscsi_tgt/rbd/rbd.sh @@ -54,7 +54,6 @@ iscsiadm -m node --login -p $TARGET_IP:$ISCSI_PORT trap "iscsicleanup; killprocess $pid; rbd_cleanup; exit 1" SIGINT SIGTERM EXIT -sleep 1 $fio_py iscsi 4096 1 randrw 1 1 verify $fio_py iscsi 131072 32 randrw 1 1 verify diff --git a/test/iscsi_tgt/reset/reset.sh b/test/iscsi_tgt/reset/reset.sh index 3a6af6a8e..433b4a805 100755 --- a/test/iscsi_tgt/reset/reset.sh +++ b/test/iscsi_tgt/reset/reset.sh @@ -53,7 +53,6 @@ iscsiadm -m node --login -p $TARGET_IP:$ISCSI_PORT sleep 1 dev=$(iscsiadm -m session -P 3 | grep "Attached scsi disk" | awk '{print $4}') -sleep 1 $fio_py iscsi 512 1 read 60 1 & fiopid=$! echo "FIO pid: $fiopid"