diff mbox series

[2/3] generic: fsx IO_URING soak tests

Message ID 20200916171443.29546-3-zlang@redhat.com (mailing list archive)
State New, archived
Headers show
Series xfstests: add IO_URING test cases | expand

Commit Message

Zorro Lang Sept. 16, 2020, 5:14 p.m. UTC
After fsx supports IO_URING read/write, add a test to do IO_URING
soak test of fsx.

Signed-off-by: Zorro Lang <zlang@redhat.com>
---
 common/rc             | 16 ++++++++++++
 tests/generic/609     | 58 +++++++++++++++++++++++++++++++++++++++++++
 tests/generic/609.out |  2 ++
 tests/generic/group   |  1 +
 4 files changed, 77 insertions(+)
 create mode 100755 tests/generic/609
 create mode 100644 tests/generic/609.out

Comments

Brian Foster Oct. 2, 2020, 6:20 p.m. UTC | #1
On Thu, Sep 17, 2020 at 01:14:42AM +0800, Zorro Lang wrote:
> After fsx supports IO_URING read/write, add a test to do IO_URING
> soak test of fsx.
> 
> Signed-off-by: Zorro Lang <zlang@redhat.com>
> ---
>  common/rc             | 16 ++++++++++++
>  tests/generic/609     | 58 +++++++++++++++++++++++++++++++++++++++++++
>  tests/generic/609.out |  2 ++
>  tests/generic/group   |  1 +
>  4 files changed, 77 insertions(+)
>  create mode 100755 tests/generic/609
>  create mode 100644 tests/generic/609.out
> 
...
> diff --git a/tests/generic/609 b/tests/generic/609
> new file mode 100755
> index 00000000..1d9b6fed
> --- /dev/null
> +++ b/tests/generic/609
> @@ -0,0 +1,58 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2020 Red Hat Inc.  All Rights Reserved.
> +#
> +# FS QA Test 609
> +#
> +# IO_URING soak buffered fsx test
> +#
> +seq=`basename $0`
> +seqres=$RESULT_DIR/$seq
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1	# failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> +	cd /
> +	rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
> +
> +# real QA test starts here
> +
> +# Modify as appropriate.
> +_supported_fs generic
> +_supported_os Linux
> +_require_test
> +_require_io_uring
> +
> +# Run fsx for a million ops or more
> +nr_ops=$((100000 * TIME_FACTOR))

The value used here doesn't match the comment. Though it looks like this
is modeled after generic/512, which does specify 1m ops, but also isn't
included in the auto group presumably due to the time required to run
the test.

Brian

> +op_sz=$((128000 * LOAD_FACTOR))
> +file_sz=$((600000 * LOAD_FACTOR))
> +fsx_file=$TEST_DIR/fsx.$seq
> +
> +fsx_args=(-S 0)
> +fsx_args+=(-U)
> +fsx_args+=(-q)
> +fsx_args+=(-N $nr_ops)
> +fsx_args+=(-p $((nr_ops / 100)))
> +fsx_args+=(-o $op_sz)
> +fsx_args+=(-l $file_sz)
> +
> +run_fsx "${fsx_args[@]}" | sed -e '/^fsx.*/d'
> +
> +# success, all done
> +echo "Silence is golden"
> +status=0
> +exit
> diff --git a/tests/generic/609.out b/tests/generic/609.out
> new file mode 100644
> index 00000000..0d75b384
> --- /dev/null
> +++ b/tests/generic/609.out
> @@ -0,0 +1,2 @@
> +QA output created by 609
> +Silence is golden
> diff --git a/tests/generic/group b/tests/generic/group
> index aa969bcb..cf50f4a1 100644
> --- a/tests/generic/group
> +++ b/tests/generic/group
> @@ -611,3 +611,4 @@
>  606 auto attr quick dax
>  607 auto attr quick dax
>  608 auto attr quick dax
> +609 auto rw io_uring
> -- 
> 2.20.1
>
diff mbox series

Patch

diff --git a/common/rc b/common/rc
index aa5a7409..b6b39eba 100644
--- a/common/rc
+++ b/common/rc
@@ -1984,6 +1984,22 @@  _require_aiodio()
     _require_odirect
 }
 
+# this test requires that the kernel supports IO_URING
+_require_io_uring()
+{
+	$here/src/feature -R
+	case $? in
+	0)
+		;;
+	1)
+		_notrun "kernel does not support IO_URING"
+		;;
+	*)
+		_fail "unexpected error testing for IO_URING support"
+		;;
+	esac
+}
+
 # this test requires that a test program exists under src/
 # $1 - command (require)
 #
diff --git a/tests/generic/609 b/tests/generic/609
new file mode 100755
index 00000000..1d9b6fed
--- /dev/null
+++ b/tests/generic/609
@@ -0,0 +1,58 @@ 
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2020 Red Hat Inc.  All Rights Reserved.
+#
+# FS QA Test 609
+#
+# IO_URING soak buffered fsx test
+#
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1	# failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+	cd /
+	rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+# remove previous $seqres.full before test
+rm -f $seqres.full
+
+# real QA test starts here
+
+# Modify as appropriate.
+_supported_fs generic
+_supported_os Linux
+_require_test
+_require_io_uring
+
+# Run fsx for a million ops or more
+nr_ops=$((100000 * TIME_FACTOR))
+op_sz=$((128000 * LOAD_FACTOR))
+file_sz=$((600000 * LOAD_FACTOR))
+fsx_file=$TEST_DIR/fsx.$seq
+
+fsx_args=(-S 0)
+fsx_args+=(-U)
+fsx_args+=(-q)
+fsx_args+=(-N $nr_ops)
+fsx_args+=(-p $((nr_ops / 100)))
+fsx_args+=(-o $op_sz)
+fsx_args+=(-l $file_sz)
+
+run_fsx "${fsx_args[@]}" | sed -e '/^fsx.*/d'
+
+# success, all done
+echo "Silence is golden"
+status=0
+exit
diff --git a/tests/generic/609.out b/tests/generic/609.out
new file mode 100644
index 00000000..0d75b384
--- /dev/null
+++ b/tests/generic/609.out
@@ -0,0 +1,2 @@ 
+QA output created by 609
+Silence is golden
diff --git a/tests/generic/group b/tests/generic/group
index aa969bcb..cf50f4a1 100644
--- a/tests/generic/group
+++ b/tests/generic/group
@@ -611,3 +611,4 @@ 
 606 auto attr quick dax
 607 auto attr quick dax
 608 auto attr quick dax
+609 auto rw io_uring