[PATCH] blktests: test turning wbt on and off

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



There have been a few issues with turning wbt on and off while IO is in
flight, so add a test that just does some random rw IO and has a
background thread that toggles wbt on and off.

Signed-off-by: Josef Bacik <josef@xxxxxxxxxxxxxx>
---
 tests/block/027     | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/block/027.out |  2 ++
 2 files changed, 49 insertions(+)
 create mode 100755 tests/block/027
 create mode 100644 tests/block/027.out

diff --git a/tests/block/027 b/tests/block/027
new file mode 100755
index 000000000000..dce6431172a8
--- /dev/null
+++ b/tests/block/027
@@ -0,0 +1,47 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-3.0+
+# Copyright (C) 2018 Josef Bacik
+#
+# Turn wbt on and off in the background while writing to the disk to verify
+# there's no races in the inflight counter manipulation
+
+. tests/block/rc
+
+DESCRIPTION="run a read workload and write workload together with wbt"
+
+requires() {
+	_have_fio && _have_program jq
+}
+
+device_requires() {
+	_test_dev_supports_wbt
+}
+
+toggle_wbt() {
+	while true
+	do
+		_test_dev_queue_set wbt_lat_usec 0
+		sleep 1
+		_test_dev_queue_set wbt_lat_usec 1
+		sleep 1			
+	done
+}
+
+test_device() {
+	echo "Running ${TEST_NAME}"
+
+	local wbt_setting toggle_pid
+	wbt_setting=$(_test_dev_queue_get wbt_lat_usec)
+
+	(toggle_wbt &)
+	toggle_pid=$!
+
+	_run_fio --name randrw --numjobs=8 --runtime=30 --randseed=12345 \
+		--ioengine=psync --readwrite=randrw --filename="$TEST_DEV"
+
+	kill $toggle_pid > /dev/null 2>&1
+	wait
+	_test_dev_queue_set wbt_lat_usec "$wbt_setting"
+
+	echo "Test complete"
+}
diff --git a/tests/block/027.out b/tests/block/027.out
new file mode 100644
index 000000000000..b03498fbc763
--- /dev/null
+++ b/tests/block/027.out
@@ -0,0 +1,2 @@
+Running block/027
+Test complete
-- 
2.14.3




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux