Skip to contentSkip to conversation

kvmxfstests: Add 64K related configs for Power

PATCH Applied Ritesh Harjani 2 participants 11 messages Jun 18, 2021 – Jul 1, 2021

lore
Share & tools
lore
#0 lore raw

cover kvmxfstests: Add 64K related configs for Power

Hello,

These patches adds and/or fixes configs for 64K blocksize/pagesize related platform (e.g. Power). This series adds some new configs for btrfs and 64K related configs for ext4/xfs/btrfs.

There are also some fixes related to dax and related to SCRATCH_DEV_POOL env variable is used by btrfs.

Then the last patch adds some extra packages which many a times are useful while manual debugging/testing.

Reason for ccing fstests:-
=========================
In past I saw kvmxfstests patches going via fstests. One other reason for sending it via fstests was to get a feedback on the btrfs & XFS configs. We have started using kvmxfstests for filesystem testing of ext4/XFS/btrfs on Power platform and are planning to scale it further to tests weekly upstream releases too. Thus if there are any suggestions around other configs (mainly for btrfs and/or XFS) which must (good to include) be tested as part of filesystem testing, then I will be happy to add those into kvmxfstests suite configs. For e.g. look at different ext4 configs [1].

[1]: https://github.com/tytso/xfstests-bld/tree/master/kvm-xfstests/test-appliance/files/root/fs/ext4/cfg

Ritesh Harjani (9):
ext4/cfg/dax: Fix for 64K pagesize platform
ext4/cfg/64K: Add a 64K related config file ext4/cfg/fast_commit: Add explicit 4k bs option ext4/cfg/fast_commit_64K: Add a config file to test fast_commit with 64K bs xfs/cfg/dax: Fix this config to work on 64K pagesize platform too xfs/cfg/64K: Add a config file with 64K blocksize
btrfs/cfg: Add 4k and 64k related configs
runtests.sh: Fix when SCRATCH_DEV_POOL is passed
xfstests-packages: Add some more packages.

 kvm-xfstests/test-appliance/files/root/fs/btrfs/cfg/4k      | 5 +++++
 kvm-xfstests/test-appliance/files/root/fs/btrfs/cfg/64k     | 5 +++++
 kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/64k      | 4 ++++
 kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/dax      | 4 ++--
 .../test-appliance/files/root/fs/ext4/cfg/fast_commit       | 2 +-
 .../test-appliance/files/root/fs/ext4/cfg/fast_commit_64k   | 4 ++++
 kvm-xfstests/test-appliance/files/root/fs/xfs/cfg/64k       | 3 +++
 kvm-xfstests/test-appliance/files/root/fs/xfs/cfg/dax       | 2 +-
 kvm-xfstests/test-appliance/files/root/runtests.sh          | 6 ++++++
 kvm-xfstests/test-appliance/xfstests-packages               | 4 ++++
 10 files changed, 35 insertions(+), 4 deletions(-)
 create mode 100644 kvm-xfstests/test-appliance/files/root/fs/btrfs/cfg/4k
 create mode 100644 kvm-xfstests/test-appliance/files/root/fs/btrfs/cfg/64k
 create mode 100644 kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/64k
 create mode 100644 kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/fast_commit_64k
 create mode 100644 kvm-xfstests/test-appliance/files/root/fs/xfs/cfg/64k

--
2.31.1

#1 lore raw

PATCH 1/9 ext4/cfg/dax: Fix for 64K pagesize platform

For dax we need blocksize same as pagesize. Hence make changes in this to get the blocksize via $(getconf PAGE_SIZE) to fix it on 64K pagesize platforms e.g. POWER.

---
 kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/dax | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/dax +2 -2
index b46e661..de25d91 100644
@@ -2,6 +2,6 @@ export TEST_DEV=/dev/pmem0
 export TEST_DIR=$SM_TST_MNT
 export SCRATCH_DEV=/dev/pmem1
 export SCRATCH_MNT=$SM_SCR_MNT
-export EXT_MKFS_OPTIONS="-b 4096"
+export EXT_MKFS_OPTIONS="-b $(getconf PAGE_SIZE)"
 export EXT_MOUNT_OPTIONS="dax"
-TESTNAME="Ext4 4k block using DAX"
+TESTNAME="Ext4 using DAX"
Signature · 1 line
2.31.1
#2 lore raw

PATCH 2/9 ext4/cfg/64K: Add a 64K related config file

In reply to Ritesh Harjani

Add a 64K related config for platforms like PPC64.

---
 kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/64k | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/64k
kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/64k new file +4 -0
new file mode 100644
index 0000000..1f5e6f2
@@ -0,0 +1,4 @@
+SIZE=small
+export EXT_MKFS_OPTIONS="-b 65536"
+export EXT_MOUNT_OPTIONS=""
+TESTNAME="Ext4 64k block"
Signature · 1 line
2.31.1
#3 lore raw

PATCH 3/9 ext4/cfg/fast_commit: Add explicit 4k bs option

In reply to Ritesh Harjani

This test as of now is mainly used to test with 4k blocksize. Hence add an explicit "-b 4096" option to reflect the same.

---
 kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/fast_commit | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/fast_commit +1 -1
index 0659c1a..295cda3 100644
@@ -1,4 +1,4 @@
 SIZE=small
-export EXT_MKFS_OPTIONS="-I 256 -O fast_commit,64bit"
+export EXT_MKFS_OPTIONS="-b 4096 -I 256 -O fast_commit,64bit"
 export EXT_MOUNT_OPTIONS=""
 TESTNAME="Ext4 4k block w/fast_commit"
Signature · 1 line
2.31.1
#4 lore raw

PATCH 4/9 ext4/cfg/fast_commit_64K: Add a config file to test fast_commit with 64K bs

In reply to Ritesh Harjani

This can be used to test fast_commit with 64K blocksize on platforms like PPC64.

---
 .../test-appliance/files/root/fs/ext4/cfg/fast_commit_64k     | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/fast_commit_64k
kvm-xfstests/test-appliance/files/root/fs/ext4/cfg/fast_commit_64k new file +4 -0
new file mode 100644
index 0000000..4b0d3b1
@@ -0,0 +1,4 @@
+SIZE=small
+export EXT_MKFS_OPTIONS="-b 65536 -I 256 -O fast_commit,64bit"
+export EXT_MOUNT_OPTIONS=""
+TESTNAME="Ext4 64k block w/fast_commit"
Signature · 1 line
2.31.1
#5 lore raw

PATCH 5/9 xfs/cfg/dax: Fix this config to work on 64K pagesize platform too

In reply to Ritesh Harjani

w/o this patch XFS DAX tests fails on 64K pagesize platform like PPC64.

---
 kvm-xfstests/test-appliance/files/root/fs/xfs/cfg/dax | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
kvm-xfstests/test-appliance/files/root/fs/xfs/cfg/dax +1 -1
index 6c85796..3a12ad2 100644
@@ -2,6 +2,6 @@ export TEST_DEV=/dev/pmem0
 export TEST_DIR=$SM_TST_MNT
 export SCRATCH_DEV=/dev/pmem1
 export SCRATCH_MNT=$SM_SCR_MNT
-export XFS_MKFS_OPTIONS="-bsize=4096 -mreflink=0"
+export XFS_MKFS_OPTIONS="-bsize=$(getconf PAGE_SIZE) -mreflink=0"
 export XFS_MOUNT_OPTIONS="-o dax"
 TESTNAME="XFS using DAX"
Signature · 1 line
2.31.1
#6 lore raw

PATCH 6/9 xfs/cfg/64K: Add a config file with 64K blocksize

In reply to Ritesh Harjani

This adds a 64K blocksize config file for xfs testing.

---
 kvm-xfstests/test-appliance/files/root/fs/xfs/cfg/64k | 3 +++
 1 file changed, 3 insertions(+)
 create mode 100644 kvm-xfstests/test-appliance/files/root/fs/xfs/cfg/64k
kvm-xfstests/test-appliance/files/root/fs/xfs/cfg/64k new file +3 -0
new file mode 100644
index 0000000..3666d02
@@ -0,0 +1,3 @@
+SIZE=small
+export XFS_MKFS_OPTIONS="-bsize=65536"
+TESTNAME="XFS 64k block"
Signature · 1 line
2.31.1
#7 lore raw

PATCH 7/9 btrfs/cfg: Add 4k and 64k related configs

In reply to Ritesh Harjani

This adds btrfs 4k and 64k configs.

---
 kvm-xfstests/test-appliance/files/root/fs/btrfs/cfg/4k  | 5 +++++
 kvm-xfstests/test-appliance/files/root/fs/btrfs/cfg/64k | 5 +++++
 2 files changed, 10 insertions(+)
 create mode 100644 kvm-xfstests/test-appliance/files/root/fs/btrfs/cfg/4k
 create mode 100644 kvm-xfstests/test-appliance/files/root/fs/btrfs/cfg/64k
kvm-xfstests/test-appliance/files/root/fs/btrfs/cfg/4k new file +5 -0
new file mode 100644
index 0000000..c384b8d
@@ -0,0 +1,5 @@
+SIZE=small
+export MKFS_OPTIONS="-s 4096 -n 4096"
+export MOUNT_OPTIONS=""
+export SCRATCH_DEV_POOL="/dev/vdc /dev/vdi /dev/vdj /dev/vdk"
+TESTNAME="btrfs 4k block"
kvm-xfstests/test-appliance/files/root/fs/btrfs/cfg/64k new file +5 -0
new file mode 100644
index 0000000..c234101
@@ -0,0 +1,5 @@
+SIZE=small
+export SCRATCH_DEV_POOL="/dev/vdc /dev/vdi /dev/vdj /dev/vdk"
+export MKFS_OPTIONS="-s 65536 -n 65536"
+export MOUNT_OPTIONS=""
+TESTNAME="btrfs 64k block"
Signature · 1 line
2.31.1
#8 lore raw

PATCH 8/9 runtests.sh: Fix when SCRATCH_DEV_POOL is passed

In reply to Ritesh Harjani

btrfs may need more than 1 disk which mostly needs to be passed via SCRATCH_DEV_POOL. In such case we should not set SCRATCH_DEV [1].

[1]: https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/tree/README#n55

---
 kvm-xfstests/test-appliance/files/root/runtests.sh | 6 ++++++
 1 file changed, 6 insertions(+)
kvm-xfstests/test-appliance/files/root/runtests.sh +6 -0
index 6cbda62..bfc5b24 100755
@@ -288,6 +288,12 @@ do
 		export LOGWRITES_DEV=$LG_SCR_DEV
 	    fi
 	fi
+
+	# This is required in case of BTRFS uses SCRATCH_DEV_POOL
+	if [[ -n $SCRATCH_DEV_POOL ]]; then
+		unset SCRATCH_DEV
+	fi
+
 	case "$TEST_DEV" in
 	    */ovl|9p*) ;;
 	    *:/*) ;;
Signature · 1 line
2.31.1
#9 lore raw

PATCH 9/9 xfstests-packages: Add some more packages.

In reply to Ritesh Harjani

libnuma-dev is required otherwise fio complaints and failes to start (seen on ppc64el)
ndctl is required for creating pmem namespaces.
remaining are good to have packages in case if any editing is required when debugging/accessing shell using telnet.

---
 kvm-xfstests/test-appliance/xfstests-packages | 4 ++++
 1 file changed, 4 insertions(+)
kvm-xfstests/test-appliance/xfstests-packages +4 -0
index 77dc2a8..85ca6a6 100644
@@ -53,3 +53,7 @@ udftools
 uuid-runtime
 udev
 xz-utils
+libnuma-dev
+ndctl
+git
+vim

--
2.31.1

#10 lore raw
In reply to Ritesh Harjani
Quoted 11 lines · Ritesh Harjani

Hello,

These patches adds and/or fixes configs for 64K blocksize/pagesize related platform (e.g. Power). This series adds some new configs for btrfs and 64K related configs for ext4/xfs/btrfs.

There are also some fixes related to dax and related to SCRATCH_DEV_POOL env variable is used by btrfs.

Then the last patch adds some extra packages which many a times are useful while manual debugging/testing.

Applied, thanks!

- Ted