Add generic tests 758 and 759 for testing reads/writes from buffers backed by hugepages. Signed-off-by: Joanne Koong <joannelkoong@xxxxxxxxx> --- common/rc | 10 ++++++++++ tests/generic/758 | 23 +++++++++++++++++++++++ tests/generic/758.out | 4 ++++ tests/generic/759 | 24 ++++++++++++++++++++++++ tests/generic/759.out | 4 ++++ 5 files changed, 65 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..33af7fa7 100644 --- a/common/rc +++ b/common/rc @@ -3016,6 +3016,16 @@ _require_xfs_io_command() fi } +# check that the kernel and system supports huge pages +_require_thp() +{ + thp_status=$(cat /sys/kernel/mm/transparent_hugepage/enabled) + if [[ $thp_status == *"[never]"* ]]; then + _notrun "system doesn't support transparent hugepages" + fi + _require_kernel_config CONFIG_TRANSPARENT_HUGEPAGE +} + # 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..b3bd6e5b --- /dev/null +++ b/tests/generic/758 @@ -0,0 +1,23 @@ +#! /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 + +# Import common functions. +. ./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..6dfe2b86 --- /dev/null +++ b/tests/generic/759 @@ -0,0 +1,24 @@ +#! /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 + +# Import common functions. +. ./common/filter + +_require_test +_require_odirect +_require_thp + +run_fsx -N 10000 -l 500000 -Z -R -W -h +run_fsx -N 10000 -o 8192 -l 500000 -Z -R -W -h +run_fsx -N 10000 -o 128000 -l 500000 -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..18d21229 --- /dev/null +++ b/tests/generic/759.out @@ -0,0 +1,4 @@ +QA output created by 759 +fsx -N 10000 -l 500000 -Z -R -W -h +fsx -N 10000 -o 8192 -l 500000 -Z -R -W -h +fsx -N 10000 -o 128000 -l 500000 -Z -R -W -h -- 2.47.1