All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.