From: Dave Chinner <david@fromorbit.com>
To: fstests@vger.kernel.org
Subject: [PATCH 20/40] fstests: remove uses of killall where possible
Date: Wed, 27 Nov 2024 15:51:50 +1100 [thread overview]
Message-ID: <20241127045403.3665299-21-david@fromorbit.com> (raw)
In-Reply-To: <20241127045403.3665299-1-david@fromorbit.com>
From: Dave Chinner <dchinner@redhat.com>
there are many unnecessary uses of killall and stale checks for it's
existence. Parallel check execution means killall is considered
harmful, so get rid of these unneccesary uses.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
common/config | 1 -
common/fuzzy | 6 +++---
doc/requirement-checking.txt | 6 +++---
tests/btrfs/192 | 1 -
tests/btrfs/212 | 2 --
tests/generic/270 | 1 -
tests/generic/310 | 22 +++++++++++++++++-----
tests/generic/751 | 1 -
tests/overlay/058 | 12 ++++++++----
tests/xfs/011 | 1 -
tests/xfs/013 | 1 -
tests/xfs/051 | 1 -
tests/xfs/057 | 1 -
tests/xfs/070 | 9 +++++----
tests/xfs/079 | 1 -
tests/xfs/141 | 1 -
tests/xfs/167 | 3 ---
tests/xfs/297 | 2 --
tests/xfs/442 | 1 -
19 files changed, 36 insertions(+), 37 deletions(-)
diff --git a/common/config b/common/config
index 41b8f29d1..6f531c43d 100644
--- a/common/config
+++ b/common/config
@@ -182,7 +182,6 @@ export CHACL_PROG="$(type -P chacl)"
export ATTR_PROG="$(type -P attr)"
export QUOTA_PROG="$(type -P quota)"
export XFS_QUOTA_PROG="$(type -P xfs_quota)"
-export KILLALL_PROG="$(type -P killall)"
export INDENT_PROG="$(type -P indent)"
export XFS_COPY_PROG="$(type -P xfs_copy)"
export FSTRIM_PROG="$(type -P fstrim)"
diff --git a/common/fuzzy b/common/fuzzy
index 3a7f04aae..534e91ded 100644
--- a/common/fuzzy
+++ b/common/fuzzy
@@ -1188,14 +1188,14 @@ _scratch_xfs_stress_scrub_cleanup() {
# a race condition that can hang fstests.
#
# If the xfs_io -c freeze process is asleep waiting for a write lock on
- # s_umount or sb_write when the killall signal is delivered, it will
+ # s_umount or sb_write when the kill signal is delivered, it will
# not check for pending signals until after it has frozen the fs. If
# even one thread of the stress test processes (xfs_io, fsstress, etc.)
- # is waiting for read locks on sb_write when the killall signals are
+ # is waiting for read locks on sb_write when the kill signals are
# delivered, they will block in the kernel until someone thaws the fs,
# and the `wait' below will wait forever.
#
- # Hence we issue the killall, wait for the freezer loop to exit, thaw
+ # Hence we issue the kill, wait for the freezer loop to exit, thaw
# the filesystem, and wait for the rest of the children.
if [ -n "$__SCRUB_STRESS_FREEZE_PID" ]; then
echo "Waiting for fs freezer $__SCRUB_STRESS_FREEZE_PID to exit at $(date)" >> $seqres.full
diff --git a/doc/requirement-checking.txt b/doc/requirement-checking.txt
index 802bf2a3f..78990fe9e 100644
--- a/doc/requirement-checking.txt
+++ b/doc/requirement-checking.txt
@@ -40,11 +40,11 @@ _require_command "$NAME_PROG" name
should then be used to refer to the command when executing it. For
example:
- _require_command "KILLALL_PROG" killall
+ _require_command "$XFS_DB_PROG" "xfs_db"
- to locate the killall command and then:
+ to locate the xfs_db command and then:
- $KILLALL_PROG -q $FSSTRESS_PROG
+ $XFS_DB_PROG -c "sb 0" -c "print" $SCRATCH_DEV
to make use of it.
diff --git a/tests/btrfs/192 b/tests/btrfs/192
index cc8e1e003..0a8ab2c1b 100755
--- a/tests/btrfs/192
+++ b/tests/btrfs/192
@@ -27,7 +27,6 @@ _cleanup()
. ./common/dmlogwrites
-_require_command "$KILLALL_PROG" killall
_require_command "$BLKDISCARD_PROG" blkdiscard
_require_btrfs_fs_feature "no_holes"
_require_btrfs_mkfs_feature "no-holes"
diff --git a/tests/btrfs/212 b/tests/btrfs/212
index 745b9598a..80c702720 100755
--- a/tests/btrfs/212
+++ b/tests/btrfs/212
@@ -25,8 +25,6 @@ _cleanup()
. ./common/filter
_require_scratch
-_require_command "$KILLALL_PROG" killall
-
_scratch_mkfs >> $seqres.full
_scratch_mount
diff --git a/tests/generic/270 b/tests/generic/270
index aff379ac5..342ac8b5d 100755
--- a/tests/generic/270
+++ b/tests/generic/270
@@ -56,7 +56,6 @@ _workout()
_require_quota
_require_user
_require_scratch
-_require_command "$KILLALL_PROG" killall
_require_command "$SETCAP_PROG" setcap
_require_attrs security
diff --git a/tests/generic/310 b/tests/generic/310
index 15e87aece..1ae9e0233 100755
--- a/tests/generic/310
+++ b/tests/generic/310
@@ -29,14 +29,19 @@ _begin_fstest auto
# Override the default cleanup function.
_cleanup()
{
+ if [ -n "$readdir_pid" ]; then
+ pkill --parent "$readdir_pid" t_readdir > /dev/null 2>&1
+ kill -9 $readdir_pid > /dev/null 2>&1
+ wait
+ fi
rm -rf $TEST_DIR/tmp
+ rm -f $tmp.*
}
# Import common functions.
. ./common/filter
_require_test
-_require_command "$KILLALL_PROG" killall
dmesg -c > /dev/null
@@ -80,9 +85,12 @@ done
_test_read()
{
- $here/src/t_readdir_1 $SEQ_DIR &
+ $here/src/t_readdir_1 $SEQ_DIR > /dev/null 2>&1 &
+ readdir_pid=$!
sleep $RUN_TIME
- $KILLALL_PROG t_readdir_1
+ kill $readdir_pid
+ unset readdir_pid
+ wait
check_kernel_bug
if [ $? -ne 0 ]; then
_fatal "kernel bug detected, check dmesg for more infomation."
@@ -91,9 +99,13 @@ _test_read()
_test_lseek()
{
- $here/src/t_readdir_2 $SEQ_DIR &
+ $here/src/t_readdir_2 $SEQ_DIR > /dev/null 2>&1 &
+ readdir_pid=$!
sleep $RUN_TIME
- $KILLALL_PROG t_readdir_2
+ kill $readdir_pid
+ unset readdir_pid
+ wait
+
check_kernel_bug
if [ $? -ne 0 ]; then
_fatal "kernel bug detected, check dmesg for more infomation."
diff --git a/tests/generic/751 b/tests/generic/751
index eac2d230a..892e59edf 100755
--- a/tests/generic/751
+++ b/tests/generic/751
@@ -80,7 +80,6 @@ fio_err=$tmp.fio.err
_require_test
_require_scratch
_require_split_huge_pages_knob
-_require_command "$KILLALL_PROG" "killall"
_fixed_by_git_commit kernel 2a0774c2886d \
"XArray: set the marks correctly when splitting an entry"
diff --git a/tests/overlay/058 b/tests/overlay/058
index b70e06638..b19a47e36 100755
--- a/tests/overlay/058
+++ b/tests/overlay/058
@@ -21,8 +21,10 @@ _begin_fstest auto quick exportfs
# Override the default cleanup function.
_cleanup()
{
- $KILLALL_PROG -9 open_by_handle >/dev/null 2>&1
- wait
+ if [ -n "$pids" ]; then
+ kill -9 $pids >/dev/null 2>&1
+ wait
+ fi
cd /
rm -f $tmp.*
}
@@ -36,7 +38,6 @@ _require_test_program "open_by_handle"
# We need to require all features together, because nfs_export cannot
# be enabled when index is disabled
_require_scratch_overlay_features index nfs_export
-_require_command "$KILLALL_PROG" killall
# All overlay dirs are on scratch partition
lower=$OVL_BASE_SCRATCH_MNT/$OVL_LOWER
@@ -89,9 +90,11 @@ test_file_handles $SCRATCH_MNT -rnp -i $tmp.lower_file_handles
# overlay dentries in cache
_scratch_cycle_mount "index=on,nfs_export=on"
test_file_handles $SCRATCH_MNT -rnps -i $tmp.upper_file_handles &
+pids=$!
# Give the above 1 second to get to sleep loop
sleep 1
test_file_handles $SCRATCH_MNT -rnps -i $tmp.lower_file_handles &
+pids="$pids $!"
# Give the above 1 second to get to sleep loop
sleep 1
@@ -105,8 +108,9 @@ test_file_handles $SCRATCH_MNT -rnp -i $tmp.upper_file_handles
test_file_handles $SCRATCH_MNT -rnp -i $tmp.lower_file_handles
# SIGPIPE avoids Terminated/Killed message from bash
-$KILLALL_PROG -q -13 open_by_handle
+kill -13 $pids > /dev/null 2>&1
wait
+unset pids
status=0
exit
diff --git a/tests/xfs/011 b/tests/xfs/011
index ed69879c5..1192e75dd 100755
--- a/tests/xfs/011
+++ b/tests/xfs/011
@@ -14,7 +14,6 @@ _begin_fstest auto freeze log metadata quick
_require_scratch
_require_freeze
_require_xfs_sysfs $(_short_dev $TEST_DEV)/log
-_require_command "$KILLALL_PROG" killall
. ./common/filter
diff --git a/tests/xfs/013 b/tests/xfs/013
index c68c6ad85..fd3d8c64c 100755
--- a/tests/xfs/013
+++ b/tests/xfs/013
@@ -74,7 +74,6 @@ _cleaner()
_require_scratch
_require_xfs_mkfs_finobt
_require_xfs_finobt
-_require_command "$KILLALL_PROG" killall
_scratch_mkfs_xfs "-m crc=1,finobt=1 -d agcount=2" | \
_filter_mkfs 2>> $seqres.full
diff --git a/tests/xfs/051 b/tests/xfs/051
index bb9c36da8..fe3d75cab 100755
--- a/tests/xfs/051
+++ b/tests/xfs/051
@@ -19,7 +19,6 @@ _begin_fstest shutdown auto log metadata
_require_scratch
_require_dm_target flakey
_require_xfs_sysfs debug/log_recovery_delay
-_require_command "$KILLALL_PROG" killall
echo "Silence is golden."
diff --git a/tests/xfs/057 b/tests/xfs/057
index 62eb8b93c..da583e621 100755
--- a/tests/xfs/057
+++ b/tests/xfs/057
@@ -42,7 +42,6 @@ _cleanup()
_require_xfs_io_error_injection log_item_pin
_require_xfs_io_error_injection log_bad_crc
_require_scratch
-_require_command "$KILLALL_PROG" killall
echo "Silence is golden."
diff --git a/tests/xfs/070 b/tests/xfs/070
index d2bd7e2c4..143f56888 100755
--- a/tests/xfs/070
+++ b/tests/xfs/070
@@ -24,10 +24,10 @@ _begin_fstest auto quick repair
# Override the default cleanup function.
_cleanup()
{
+ [ -n "$repair_pid" ] && kill -9 $repair_pid > /dev/null 2>&1
+ wait > /dev/null 2>&1
cd /
rm -f $tmp.*
- $KILLALL_PROG -9 $XFS_REPAIR_PROG > /dev/null 2>&1
- wait > /dev/null 2>&1
}
# Start and monitor an xfs_repair of the scratch device. This test can induce a
@@ -45,7 +45,8 @@ _xfs_repair_noscan()
repair_pid=$!
# monitor progress for as long as it is running
- while [ `pgrep xfs_repair` ]; do
+ running=`pgrep xfs_repair`
+ while [ -n "$running" ]; do
grep "couldn't verify primary superblock" $tmp.repair \
> /dev/null 2>&1
if [ $? == 0 ]; then
@@ -58,6 +59,7 @@ _xfs_repair_noscan()
fi
sleep 1
+ running=`pgrep xfs_repair`
done
wait
@@ -72,7 +74,6 @@ _xfs_repair_noscan()
# Modify as appropriate.
_require_scratch_nocheck
-_require_command "$KILLALL_PROG" killall
_scratch_mkfs | _filter_mkfs > /dev/null 2> $tmp.mkfs
diff --git a/tests/xfs/079 b/tests/xfs/079
index 794d2db49..4a1999bb8 100755
--- a/tests/xfs/079
+++ b/tests/xfs/079
@@ -23,7 +23,6 @@ _begin_fstest shutdown auto log quick
# Modify as appropriate.
_require_scratch
_require_v2log
-_require_command "$KILLALL_PROG" killall
echo "Silence is golden."
diff --git a/tests/xfs/141 b/tests/xfs/141
index b630ba10d..6aa844825 100755
--- a/tests/xfs/141
+++ b/tests/xfs/141
@@ -20,7 +20,6 @@ _begin_fstest auto log metadata
# Modify as appropriate.
_require_xfs_io_error_injection "log_bad_crc"
_require_scratch
-_require_command "$KILLALL_PROG" killall
echo "Silence is golden."
diff --git a/tests/xfs/167 b/tests/xfs/167
index 5ef2aa2ea..2a6e6b8d0 100755
--- a/tests/xfs/167
+++ b/tests/xfs/167
@@ -21,10 +21,7 @@ workout()
# Import common functions.
. ./common/filter
-
-_require_command "$KILLALL_PROG" killall
_require_xfs_io_command "falloc"
-
_require_scratch
_scratch_mkfs_xfs >/dev/null 2>&1
_scratch_mount
diff --git a/tests/xfs/297 b/tests/xfs/297
index 66c5d0cc7..f9cd2ff12 100755
--- a/tests/xfs/297
+++ b/tests/xfs/297
@@ -24,10 +24,8 @@ _cleanup()
# Import common functions.
. ./common/filter
-
_require_scratch
_require_freeze
-_require_command "$KILLALL_PROG" killall
logblks=$(_scratch_find_xfs_min_logblocks -d agcount=16,su=256k,sw=12 -l su=256k)
_scratch_mkfs_xfs -d agcount=16,su=256k,sw=12 -l su=256k,size=${logblks}b >/dev/null 2>&1
diff --git a/tests/xfs/442 b/tests/xfs/442
index d539fa5e0..08f0aac40 100755
--- a/tests/xfs/442
+++ b/tests/xfs/442
@@ -21,7 +21,6 @@ _begin_fstest auto stress clone quota
_require_scratch_reflink
_require_quota
-_require_command "$KILLALL_PROG" "killall"
report_quota_blocks() {
$XFS_QUOTA_PROG -x -c "report $1" $SCRATCH_MNT | \
--
2.45.2
next prev parent reply other threads:[~2024-11-27 4:59 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-27 4:51 [RFC PATCH 00/40] fstests: concurrent test execution Dave Chinner
2024-11-27 4:51 ` [PATCH 01/40] xfs/448: get rid of assert-on-failure Dave Chinner
2024-11-27 4:51 ` [PATCH 02/40] fstests: cleanup fsstress process management Dave Chinner
2024-11-29 4:03 ` Zorro Lang
2024-12-04 17:57 ` Zorro Lang
2024-12-05 4:42 ` Dave Chinner
2024-12-05 9:57 ` Zorro Lang
2024-12-04 18:04 ` Zorro Lang
2024-12-05 4:55 ` Dave Chinner
2024-12-05 10:05 ` Zorro Lang
2024-11-27 4:51 ` [PATCH 03/40] fuzzy: don't use killall Dave Chinner
2024-11-27 4:51 ` [PATCH 04/40] fstests: per-test dmflakey instances Dave Chinner
2024-11-27 4:51 ` [PATCH 05/40] fstests: per-test dmerror instances Dave Chinner
2024-11-27 4:51 ` [PATCH 06/40] fstests: per-test dmhuge instances Dave Chinner
2024-11-27 4:51 ` [PATCH 07/40] fstests: per-test dmthin instances Dave Chinner
2024-11-27 4:51 ` [PATCH 08/40] fstests: per-test dmdust instances Dave Chinner
2024-11-27 4:51 ` [PATCH 09/40] fstests: per-test dmdelay instances Dave Chinner
2024-11-27 4:51 ` [PATCH 10/40] fstests: fix DM device creation/removal vs udev races Dave Chinner
2024-11-27 4:51 ` [PATCH 11/40] fstests: use syncfs rather than sync Dave Chinner
2024-11-27 4:51 ` [PATCH 12/40] fstests: clean up mount and unmount operations Dave Chinner
2024-11-27 4:51 ` [PATCH 13/40] fstests: clean up loop device instantiation Dave Chinner
2024-12-01 12:31 ` Zorro Lang
2024-12-01 12:50 ` Zorro Lang
2024-12-07 12:44 ` Zorro Lang
2024-12-07 18:59 ` Zorro Lang
2024-12-07 19:51 ` Zorro Lang
2024-11-27 4:51 ` [PATCH 14/40] fstests: xfs/227 is really slow Dave Chinner
2024-11-27 4:51 ` [PATCH 15/40] fstests: mark tests that are unreliable when run in parallel Dave Chinner
2024-11-27 4:51 ` [PATCH 16/40] fstests: use udevadm wait in preference to settle Dave Chinner
2024-11-29 17:10 ` Darrick J. Wong
2024-11-29 22:33 ` Dave Chinner
2024-11-30 2:34 ` Zorro Lang
2024-11-27 4:51 ` [PATCH 17/40] xfs/442: rescale load so it's not exponential Dave Chinner
2024-11-27 4:51 ` [PATCH 18/40] xfs/176: fix broken setup code Dave Chinner
2024-11-27 4:51 ` [PATCH 19/40] xfs/177: remove unused slab object count location checks Dave Chinner
2024-11-27 4:51 ` Dave Chinner [this message]
2024-11-27 4:51 ` [PATCH 21/40] generic/127: reduce runtime Dave Chinner
2024-11-27 4:51 ` [PATCH 22/40] quota: system project quota files need to be shared Dave Chinner
2024-11-27 4:51 ` [PATCH 23/40] dmesg: reduce noise from other tests Dave Chinner
2024-11-27 4:51 ` [PATCH 24/40] fstests: stop using /tmp directly Dave Chinner
2024-11-27 4:51 ` [PATCH 25/40] fstests: scale some tests for high CPU count sanity Dave Chinner
2024-11-29 3:34 ` Zorro Lang
2024-11-27 4:51 ` [PATCH 26/40] generic/310: cleanup killing background processes Dave Chinner
2024-11-27 4:51 ` [PATCH 27/40] filter: handle mount errors from CONFIG_BLK_DEV_WRITE_MOUNTED=y Dave Chinner
2024-11-27 4:51 ` [PATCH 28/40] filters: add a filter that accepts EIO instead of other errors Dave Chinner
2024-11-27 4:51 ` [PATCH 29/40] generic/085: general cleanup for reliability and debugging Dave Chinner
2024-11-27 4:52 ` [PATCH 30/40] fstests: don't use directory stacks Dave Chinner
2024-12-01 12:10 ` Zorro Lang
2024-12-01 21:37 ` Dave Chinner
2024-11-27 4:52 ` [PATCH 31/40] fstests: clean up a couple of dm-flakey tests Dave Chinner
2024-11-27 4:52 ` [PATCH 32/40] fstests: clean up termination of various tests Dave Chinner
2024-11-27 4:52 ` [PATCH 33/40] vfstests: some tests require the testdir to be shared Dave Chinner
2024-11-27 4:52 ` [PATCH 34/40] xfs/629: single extent files should be within tolerance Dave Chinner
2024-11-27 4:52 ` [PATCH 35/40] xfs/076: fix broken mkfs filtering Dave Chinner
2024-11-27 4:52 ` [PATCH 36/40] fstests: capture some failures to seqres.full Dave Chinner
2024-11-27 4:52 ` [PATCH 37/40] fstests: always use fail-at-unmount semantics for XFS Dave Chinner
2024-11-27 4:52 ` [PATCH 38/40] generic/062: don't leave debug files in $here on failure Dave Chinner
2024-11-27 4:52 ` [PATCH 39/40] fstests: quota grace periods unreliable under load Dave Chinner
2024-11-27 4:52 ` [PATCH 40/40] fstests: check-parallel Dave Chinner
2024-11-29 4:22 ` [RFC PATCH 00/40] fstests: concurrent test execution Zorro Lang
2024-12-07 0:09 ` Darrick J. Wong
2024-12-07 9:38 ` Zorro Lang
2024-12-08 0:02 ` Dave Chinner
2024-12-08 6:15 ` Zorro Lang
2024-12-10 0:55 ` Dave Chinner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241127045403.3665299-21-david@fromorbit.com \
--to=david@fromorbit.com \
--cc=fstests@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox