Re: [PATCH 3/3] generic: IO_URING direct IO fsx test

Darrick J. Wong
2020-10-05T16:45:13Z

On Thu, Sep 17, 2020 at 01:14:43AM +0800, Zorro Lang wrote:
> After fsx supports IO_URING read/write, add IO_URING direct IO fsx
> test with different read/write size and concurrent buffered IO.
>
> Signed-off-by: Zorro Lang <zlang@redhat.com>

Funny, I would have expected this to be a clone of generic/521, much
like the previous test was a clone of g/522. I guess it's fine to test
various fsx parameters, but in that case, is there a reason /not/ to
have a long soak io_uring directio test?

--D

> ---
> tests/generic/610 | 52 +++++++++++++++++++++++++++++++++++++++++++
> tests/generic/610.out | 7 ++++++
> tests/generic/group | 1 +
> 3 files changed, 60 insertions(+)
> create mode 100755 tests/generic/610
> create mode 100644 tests/generic/610.out
>
> diff --git a/tests/generic/610 b/tests/generic/610
> new file mode 100755
> index 00000000..fc3f4c2a
> --- /dev/null
> +++ b/tests/generic/610
> @@ -0,0 +1,52 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2020 YOUR NAME HERE. All Rights Reserved.
> +#
> +# FS QA Test 610
> +#
> +# IO_URING direct IO 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
> +_supported_fs generic
> +_supported_os Linux
> +_require_test
> +_require_odirect
> +_require_io_uring
> +
> +psize=`$here/src/feature -s`
> +bsize=`_min_dio_alignment $TEST_DEV`
> +run_fsx -S 0 -U -N 20000 -l 600000 -r PSIZE -w BSIZE -Z -R -W
> +run_fsx -S 0 -U -N 20000 -o 8192 -l 600000 -r PSIZE -w BSIZE -Z -R -W
> +run_fsx -S 0 -U -N 20000 -o 128000 -l 600000 -r PSIZE -w BSIZE -Z -R -W
> +
> +# change readbdy/writebdy to double page size
> +psize=$((psize * 2))
> +run_fsx -S 0 -U -N 20000 -l 600000 -r PSIZE -w PSIZE -Z -R -W
> +run_fsx -S 0 -U -N 20000 -o 256000 -l 600000 -r PSIZE -w PSIZE -Z -R -W
> +run_fsx -S 0 -U -N 20000 -o 128000 -l 600000 -r PSIZE -w BSIZE -Z -W
> +
> +# success, all done
> +status=0
> +exit
> diff --git a/tests/generic/610.out b/tests/generic/610.out
> new file mode 100644
> index 00000000..97ad41a3
> --- /dev/null
> +++ b/tests/generic/610.out
> @@ -0,0 +1,7 @@
> +QA output created by 610
> +fsx -S 0 -U -N 20000 -l 600000 -r PSIZE -w BSIZE -Z -R -W
> +fsx -S 0 -U -N 20000 -o 8192 -l 600000 -r PSIZE -w BSIZE -Z -R -W
> +fsx -S 0 -U -N 20000 -o 128000 -l 600000 -r PSIZE -w BSIZE -Z -R -W
> +fsx -S 0 -U -N 20000 -l 600000 -r PSIZE -w PSIZE -Z -R -W
> +fsx -S 0 -U -N 20000 -o 256000 -l 600000 -r PSIZE -w PSIZE -Z -R -W
> +fsx -S 0 -U -N 20000 -o 128000 -l 600000 -r PSIZE -w BSIZE -Z -W
> diff --git a/tests/generic/group b/tests/generic/group
> index cf50f4a1..60280dc2 100644
> --- a/tests/generic/group
> +++ b/tests/generic/group
> @@ -612,3 +612,4 @@
> 607 auto attr quick dax
> 608 auto attr quick dax
> 609 auto rw io_uring
> +610 auto rw io_uring
> --
> 2.20.1
>