* Re: [PATCH v2 1/4] common/rc: Add helper to calculate percentage of free space available [not found] ` <20260514113910.866888-4-lukas@herbolt.com> @ 2026-05-14 14:45 ` Darrick J. Wong 0 siblings, 0 replies; 4+ messages in thread From: Darrick J. Wong @ 2026-05-14 14:45 UTC (permalink / raw) To: Lukas Herbolt; +Cc: zlang, fstests, xfs [fix linux-xfs cc on everything] On Thu, May 14, 2026 at 01:39:09PM +0200, Lukas Herbolt wrote: > It calculates percentage of filesystem available space and returns it > in MB. This helper will be used in the following test/generic fixes. > > Signed-off-by: Lukas Herbolt <lukas@herbolt.com> Looks fine to me Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> --D > --- > changes v2: > spelling and description > common/rc | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/common/rc b/common/rc > index 5fe44e2158ff..9fc733ebdcf4 100644 > --- a/common/rc > +++ b/common/rc > @@ -6189,6 +6189,16 @@ _require_fanotify_ioerrors() > _notrun "$FSTYP does not support fanotify ioerrors" > } > > +# Computes a percentage of the available space in a filesystem and > +# returns that quantity in MB. The percentage must not contain a percent > +# sign ("%"). > +# usage example: > +# _mb_pct_of_available_space <mount point> <percent> > +# > +_mb_pct_of_available_space() > +{ > + _df_device $1 | $AWK_PROG -v pct=$2 '{printf "%.f", (($5*(pct/100))/1024)}' > +} > ################################################################################ > # make sure this script returns success > /bin/true > -- > 2.54.0 > > ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <20260514113910.866888-6-lukas@herbolt.com>]
* Re: [PATCH v2 2/4] common/xfs: helper function to check if -l/-d/-r concurrecy flags. [not found] ` <20260514113910.866888-6-lukas@herbolt.com> @ 2026-05-14 14:46 ` Darrick J. Wong 0 siblings, 0 replies; 4+ messages in thread From: Darrick J. Wong @ 2026-05-14 14:46 UTC (permalink / raw) To: Lukas Herbolt; +Cc: zlang, fstests, xfs On Thu, May 14, 2026 at 01:39:11PM +0200, Lukas Herbolt wrote: > Check if the requested flag is supported by the mkfs.xfs on scratch > device. > > Signed-off-by: Lukas Herbolt <lukas@herbolt.com> > --- > --- > changes v2: > -l/-d were introduced at same release no need to check both Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> --D > common/xfs | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/common/xfs b/common/xfs > index f7a6d2f2f03a..c48b043faf80 100644 > --- a/common/xfs > +++ b/common/xfs > @@ -2399,3 +2399,12 @@ _require_xfs_healer() > _xfs_healer --supported "$@" &>/dev/null || \ > _notrun "health monitoring not supported on this kernel" > } > + > +# -l/-d concurrency came in same xfsprogs release v6.7 > + _scratch_mkfs_xfs_supports_concurrency() > +{ > + local arg="${1:-d}" > + > + test "$arg" = "-l" && arg="-d" > + _scratch_mkfs_xfs_supported "$arg" concurrency=0 > +} > -- > 2.54.0 > > ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <20260514113910.866888-8-lukas@herbolt.com>]
* Re: [PATCH v2 3/4] generic/{102,172,347}: Adapt test for XFS on systems with 128+CPUs + SSDs [not found] ` <20260514113910.866888-8-lukas@herbolt.com> @ 2026-05-14 14:46 ` Darrick J. Wong 0 siblings, 0 replies; 4+ messages in thread From: Darrick J. Wong @ 2026-05-14 14:46 UTC (permalink / raw) To: Lukas Herbolt; +Cc: zlang, fstests, xfs On Thu, May 14, 2026 at 01:39:13PM +0200, Lukas Herbolt wrote: > XFS will now scale by default its log size according the amount of CPUs. This > can significantly increase the log area and using hard-coded size of file size > will make the test file. Using the X percent of the free space to create the > file will let the test proceed. > > For generic/102 we also have to change the 102.out as we cannot know the > amount written data and it has to be filtered out. > > For generic/172 we just use the new function to calculate file big enough > to consume most of the available space. > > The generic/347 will use -l concurrency=0 in case it is being run on the > XFS filesystem and mkfs.xfs already supports this option. > > Signed-off-by: Lukas Herbolt <lukas@herbolt.com> > --- > changes v2: > test: generic/102 change the file size to 80% as it's closer to > original size of 800MB Cool, thanks. Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> --D > tests/generic/102 | 5 +++-- > tests/generic/102.out | 20 ++++++++++---------- > tests/generic/172 | 8 ++++---- > tests/generic/347 | 9 ++++++++- > 4 files changed, 25 insertions(+), 17 deletions(-) > > diff --git a/tests/generic/102 b/tests/generic/102 > index daa5061bd3fe..be9ddda30a1d 100755 > --- a/tests/generic/102 > +++ b/tests/generic/102 > @@ -23,12 +23,13 @@ _require_scratch > dev_size=$((1024 * 1024 * 1024)) # 1GB filesystem > _scratch_mkfs_sized $dev_size >>$seqres.full 2>&1 > _scratch_mount > +file_size=`_mb_pct_of_available_space $SCRATCH_DEV 80` > > for ((i = 0; i < 10; i++)); do > echo "loop $i" >>$seqres.full > > - $XFS_IO_PROG -f -c "pwrite -b 1m 0 800m" "$SCRATCH_MNT"/file | \ > -_filter_xfs_io | _filter_scratch > + $XFS_IO_PROG -f -c "pwrite -b 1m 0 ${file_size}m" "$SCRATCH_MNT"/file | \ > +_filter_xfs_io_numbers | _filter_scratch > > rm -f "$SCRATCH_MNT"/file > done > diff --git a/tests/generic/102.out b/tests/generic/102.out > index b58aa5ccc68b..647bb23abec1 100644 > --- a/tests/generic/102.out > +++ b/tests/generic/102.out > @@ -1,21 +1,21 @@ > QA output created by 102 > -wrote 838860800/838860800 bytes at offset 0 > +wrote XXXX/XXXX bytes at offset XXXX > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 838860800/838860800 bytes at offset 0 > +wrote XXXX/XXXX bytes at offset XXXX > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 838860800/838860800 bytes at offset 0 > +wrote XXXX/XXXX bytes at offset XXXX > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 838860800/838860800 bytes at offset 0 > +wrote XXXX/XXXX bytes at offset XXXX > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 838860800/838860800 bytes at offset 0 > +wrote XXXX/XXXX bytes at offset XXXX > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 838860800/838860800 bytes at offset 0 > +wrote XXXX/XXXX bytes at offset XXXX > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 838860800/838860800 bytes at offset 0 > +wrote XXXX/XXXX bytes at offset XXXX > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 838860800/838860800 bytes at offset 0 > +wrote XXXX/XXXX bytes at offset XXXX > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 838860800/838860800 bytes at offset 0 > +wrote XXXX/XXXX bytes at offset XXXX > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 838860800/838860800 bytes at offset 0 > +wrote XXXX/XXXX bytes at offset XXXX > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > diff --git a/tests/generic/172 b/tests/generic/172 > index b67e817b667b..06f9370f065d 100755 > --- a/tests/generic/172 > +++ b/tests/generic/172 > @@ -37,15 +37,15 @@ echo "Reformat with appropriate size" > blksz="$(_get_block_size $testdir)" > _scratch_unmount > > -file_size=$((768 * 1024 * 1024)) > fs_size=$((1024 * 1024 * 1024)) > _scratch_mkfs_sized $fs_size >> $seqres.full 2>&1 > _scratch_mount >> $seqres.full 2>&1 > rm -rf $testdir > mkdir $testdir > +file_size=`_mb_pct_of_available_space $SCRATCH_DEV 70` > > echo "Create a big file and reflink it" > -_pwrite_byte 0x61 0 $file_size $testdir/bigfile >> $seqres.full 2>&1 > +_pwrite_byte 0x61 0 ${file_size}m $testdir/bigfile >> $seqres.full 2>&1 > _cp_reflink $testdir/bigfile $testdir/clonefile > _scratch_sync > > @@ -54,7 +54,7 @@ _fill_fs $fs_size $testdir/space $blksz 0 >> $seqres.full 2>&1 > _scratch_sync > > echo "CoW the big file" > -out="$(_pwrite_byte 0x62 0 $file_size $testdir/bigfile 2>&1 | \ > +out="$(_pwrite_byte 0x62 0 ${file_size}m $testdir/bigfile 2>&1 | \ > _filter_xfs_io_error)" > echo ${out} | grep -q "No space left on device" || echo "CoW should have failed with ENOSPC" > echo ${out} >> $seqres.full 2>&1 > @@ -63,7 +63,7 @@ echo ${out} > echo "Remount and try CoW again" > _scratch_cycle_mount > > -out="$(_pwrite_byte 0x62 0 $file_size $testdir/bigfile 2>&1 | \ > +out="$(_pwrite_byte 0x62 0 ${file_size}m $testdir/bigfile 2>&1 | \ > _filter_xfs_io_error)" > echo ${out} | grep -q "No space left on device" || echo "CoW should have failed with ENOSPC" > echo ${out} >> $seqres.full 2>&1 > diff --git a/tests/generic/347 b/tests/generic/347 > index 5c0e3f949585..06df0cf9eddc 100755 > --- a/tests/generic/347 > +++ b/tests/generic/347 > @@ -14,6 +14,13 @@ BACKING_SIZE=$((500 * 1024 * 1024 / 512)) # 500M > VIRTUAL_SIZE=$((10 * $BACKING_SIZE)) # 5000M > GROW_SIZE=$((100 * 1024 * 1024 / 512)) # 100M > > +dmthin_mkfs_opts="" > +if [ $FSTYP == "xfs" ]; then > + if _scratch_mkfs_xfs_supports_concurrency -l >> $seqres.full 2>&1; then > + dmthin_mkfs_opts="-l concurrency=0" > + fi > +fi > + > # Override the default cleanup function. > _cleanup() > { > @@ -25,7 +32,7 @@ _setup_thin() > { > _dmthin_init $BACKING_SIZE $VIRTUAL_SIZE > _dmthin_set_queue > - _dmthin_mkfs > + _dmthin_mkfs $dmthin_mkfs_opts > _dmthin_mount > } > > -- > 2.54.0 > > ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <20260514113910.866888-10-lukas@herbolt.com>]
* Re: [PATCH v2 4/4] xfs/21{6,7} Use default -l concurrency=0 on mkfs.xfs that supports it [not found] ` <20260514113910.866888-10-lukas@herbolt.com> @ 2026-05-14 14:47 ` Darrick J. Wong 0 siblings, 0 replies; 4+ messages in thread From: Darrick J. Wong @ 2026-05-14 14:47 UTC (permalink / raw) To: Lukas Herbolt; +Cc: zlang, fstests, xfs On Thu, May 14, 2026 at 01:39:15PM +0200, Lukas Herbolt wrote: > The XFS concurrency optimization breaks the log sizing check on > systems with non-rotational disks and high amount of CPUs. Default to > the old behavior with -l concurrency=0 and with -d concurrency=0. > > Signed-off-by: Lukas Herbolt <lukas@herbolt.com> > --- > changes v2: > use default mkfs.xfs for scratch device > remove the double check -l/-d as those were introduced together Yeah, sorry about breaking that. :/ Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> --D > tests/xfs/216 | 6 +++++- > tests/xfs/217 | 7 ++++++- > 2 files changed, 11 insertions(+), 2 deletions(-) > > diff --git a/tests/xfs/216 b/tests/xfs/216 > index 091c11d08642..0148e7f4de3e 100755 > --- a/tests/xfs/216 > +++ b/tests/xfs/216 > @@ -22,13 +22,17 @@ _cleanup() > > _require_scratch > _scratch_mkfs_xfs >/dev/null 2>&1 > +if _scratch_mkfs_xfs_supports_concurrency -l >> $seqres.full 2>&1; then > + loop_mkfs_opts="-l concurrency=0" > +else > + loop_mkfs_opts="" > +fi > _scratch_mount > > _require_loop > LOOP_IMG=$SCRATCH_MNT/test_fs > LOOP_MNT=$SCRATCH_MNT/test_fs_dir > > -loop_mkfs_opts= > $MKFS_XFS_PROG 2>&1 | grep -q rmapbt && \ > loop_mkfs_opts="$loop_mkfs_opts -m rmapbt=0" > $MKFS_XFS_PROG 2>&1 | grep -q reflink && \ > diff --git a/tests/xfs/217 b/tests/xfs/217 > index dae6ce55f475..23aae842d1fb 100755 > --- a/tests/xfs/217 > +++ b/tests/xfs/217 > @@ -21,6 +21,11 @@ _cleanup() > > _require_scratch > _scratch_mkfs_xfs >/dev/null 2>&1 > +if _scratch_mkfs_xfs_supports_concurrency -l >> $seqres.full 2>&1; then > + loop_mkfs_opts="-l concurrency=0 -d concurrency=0" > +else > + loop_mkfs_opts="" > +fi > _scratch_mount > # 16T mkfs requires a bit over 2G free > _require_fs_space $SCRATCH_MNT 2202000 > @@ -34,7 +39,7 @@ _do_mkfs() > for i in $*; do > echo -n "fssize=${i}g " > $MKFS_XFS_PROG -f -b size=4096 -l version=2 \ > - -d size=${i}g $loop_dev |grep log > + -d size=${i}g $loop_dev $loop_mkfs_opts |grep log > _mount $loop_dev $LOOP_MNT > echo "test write" > $LOOP_MNT/test > _unmount $LOOP_MNT > /dev/null 2>&1 > -- > 2.54.0 > > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-05-14 14:47 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260514113910.866888-2-lukas@herbolt.com>
[not found] ` <20260514113910.866888-4-lukas@herbolt.com>
2026-05-14 14:45 ` [PATCH v2 1/4] common/rc: Add helper to calculate percentage of free space available Darrick J. Wong
[not found] ` <20260514113910.866888-6-lukas@herbolt.com>
2026-05-14 14:46 ` [PATCH v2 2/4] common/xfs: helper function to check if -l/-d/-r concurrecy flags Darrick J. Wong
[not found] ` <20260514113910.866888-8-lukas@herbolt.com>
2026-05-14 14:46 ` [PATCH v2 3/4] generic/{102,172,347}: Adapt test for XFS on systems with 128+CPUs + SSDs Darrick J. Wong
[not found] ` <20260514113910.866888-10-lukas@herbolt.com>
2026-05-14 14:47 ` [PATCH v2 4/4] xfs/21{6,7} Use default -l concurrency=0 on mkfs.xfs that supports it Darrick J. Wong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox