On Wed, Jan 15, 2025 at 10:31:07AM -0800, Joanne Koong wrote: > Add generic tests 758 and 759 for testing reads/writes from buffers > backed by hugepages. > > Signed-off-by: Joanne Koong <joannelkoong@xxxxxxxxx> > Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx> > --- > common/rc | 13 +++++++++++++ > tests/generic/758 | 22 ++++++++++++++++++++++ > tests/generic/758.out | 4 ++++ > tests/generic/759 | 26 ++++++++++++++++++++++++++ > tests/generic/759.out | 4 ++++ > 5 files changed, 69 insertions(+) > create mode 100755 tests/generic/758 > create mode 100644 tests/generic/758.out > create mode 100755 tests/generic/759 > create mode 100644 tests/generic/759.out > > diff --git a/common/rc b/common/rc > index 1b2e4508..825e350e 100644 > --- a/common/rc > +++ b/common/rc > @@ -3016,6 +3016,19 @@ _require_xfs_io_command() > fi > } > > +# check that the system supports transparent hugepages > +_require_thp() > +{ > + if [ ! -e /sys/kernel/mm/transparent_hugepage/enabled ]; then > + _notrun "system doesn't support transparent hugepages" > + fi > + > + thp_status=$(cat /sys/kernel/mm/transparent_hugepage/enabled) > + if [[ $thp_status == *"[never]"* ]]; then > + _notrun "system doesn't have transparent hugepages enabled" > + fi Tabs, not spaces. With that fixed, Reviewed-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --D > +} > + > # check that kernel and filesystem support direct I/O, and check if "$1" size > # aligned (optional) is supported > _require_odirect() > diff --git a/tests/generic/758 b/tests/generic/758 > new file mode 100755 > index 00000000..e7cd8cdc > --- /dev/null > +++ b/tests/generic/758 > @@ -0,0 +1,22 @@ > +#! /bin/bash > +# SPDX-License-Identifier: GPL-2.0 > +# > +# FS QA Test No. 758 > +# > +# fsx exercising reads/writes from userspace buffers > +# backed by hugepages > +# > +. ./common/preamble > +_begin_fstest rw auto quick > + > +. ./common/filter > + > +_require_test > +_require_thp > + > +run_fsx -N 10000 -l 500000 -h > +run_fsx -N 10000 -o 8192 -l 500000 -h > +run_fsx -N 10000 -o 128000 -l 500000 -h > + > +status=0 > +exit > diff --git a/tests/generic/758.out b/tests/generic/758.out > new file mode 100644 > index 00000000..af04bb14 > --- /dev/null > +++ b/tests/generic/758.out > @@ -0,0 +1,4 @@ > +QA output created by 758 > +fsx -N 10000 -l 500000 -h > +fsx -N 10000 -o 8192 -l 500000 -h > +fsx -N 10000 -o 128000 -l 500000 -h > diff --git a/tests/generic/759 b/tests/generic/759 > new file mode 100755 > index 00000000..514e7603 > --- /dev/null > +++ b/tests/generic/759 > @@ -0,0 +1,26 @@ > +#! /bin/bash > +# SPDX-License-Identifier: GPL-2.0 > +# > +# FS QA Test No. 759 > +# > +# fsx exercising direct IO reads/writes from userspace buffers > +# backed by hugepages > +# > +. ./common/preamble > +_begin_fstest rw auto quick > + > +. ./common/filter > + > +_require_test > +_require_odirect > +_require_thp > + > +psize=`$here/src/feature -s` > +bsize=`$here/src/min_dio_alignment $TEST_DIR $TEST_DEV` > + > +run_fsx -N 10000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W -h > +run_fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W -h > +run_fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W -h > + > +status=0 > +exit > diff --git a/tests/generic/759.out b/tests/generic/759.out > new file mode 100644 > index 00000000..86bb66ef > --- /dev/null > +++ b/tests/generic/759.out > @@ -0,0 +1,4 @@ > +QA output created by 759 > +fsx -N 10000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W -h > +fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W -h > +fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W -h > -- > 2.47.1 > >