Message ID | 173706974363.1927324.3221404706023084828.stgit@frogsfrogsfrogs (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [01/23] generic/476: fix fsstress process management | expand |
On Thu, Jan 16, 2025 at 03:30:07PM -0800, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > Now that we can pkill only processes that were started by this test, we > don't need to copy the fsstress binary to $TEST_DIR to avoid killing the > wrong program instances. This avoids a whole slew of ETXTBSY problems > with scrub stress tests that run multiple copies of fsstress in the > background. > > Revert most of the changes to generic/270, because it wants to do > something fancy with the fsstress binary, so it needs to control the > process directly. > > Signed-off-by: "Darrick J. Wong" <djwong@kernel.org> Change looks fine, though this should be a lot further up near the top of the patchset so that the change to g/482 and the revert here is not necessary at all. With that reordering done: Reviewed-by: Dave Chinner <dchinner@redhat.com>
On Tue, Jan 21, 2025 at 04:05:38PM +1100, Dave Chinner wrote: > On Thu, Jan 16, 2025 at 03:30:07PM -0800, Darrick J. Wong wrote: > > From: Darrick J. Wong <djwong@kernel.org> > > > > Now that we can pkill only processes that were started by this test, we > > don't need to copy the fsstress binary to $TEST_DIR to avoid killing the > > wrong program instances. This avoids a whole slew of ETXTBSY problems > > with scrub stress tests that run multiple copies of fsstress in the > > background. > > > > Revert most of the changes to generic/270, because it wants to do > > something fancy with the fsstress binary, so it needs to control the > > process directly. > > > > Signed-off-by: "Darrick J. Wong" <djwong@kernel.org> > > Change looks fine, though this should be a lot further up near the > top of the patchset so that the change to g/482 and the revert here > is not necessary at all. > > With that reordering done: > > Reviewed-by: Dave Chinner <dchinner@redhat.com> Done, and thanks for responding to the big patch set. --D > -- > Dave Chinner > david@fromorbit.com >
diff --git a/common/rc b/common/rc index d7f3c48eafe590..25eb13ab2c5a48 100644 --- a/common/rc +++ b/common/rc @@ -56,11 +56,9 @@ _pgrep() # task name to kill. # # If tasks want to start fsstress themselves (e.g. under a different uid) then -# they can set up _FSSTRESS_BIN and record _FSSTRESS_PID themselves. Then if the -# test is killed then it will get cleaned up automatically. +# they can record _FSSTRESS_PID themselves. Then if the test is killed then it +# will get cleaned up automatically. -_FSSTRESS_BIN="$seq.fsstress" -_FSSTRESS_PROG="$TEST_DIR/$seq.fsstress" _FSSTRESS_PID="" _wait_for_fsstress() { @@ -71,7 +69,6 @@ _wait_for_fsstress() ret=$? unset _FSSTRESS_PID fi - rm -f $_FSSTRESS_PROG return $ret } @@ -80,8 +77,8 @@ _kill_fsstress() { if [ -n "$_FSSTRESS_PID" ]; then # use SIGPIPE to avoid "Killed" messages from bash - echo "killing $_FSSTRESS_BIN" >> $seqres.full - _pkill -PIPE $_FSSTRESS_BIN >> $seqres.full 2>&1 + echo "killing fsstress" >> $seqres.full + _pkill -PIPE fsstress >> $seqres.full 2>&1 _wait_for_fsstress return $? fi @@ -89,8 +86,7 @@ _kill_fsstress() _run_fsstress_bg() { - cp -f $FSSTRESS_PROG $_FSSTRESS_PROG - $_FSSTRESS_PROG $FSSTRESS_AVOID "$@" >> $seqres.full 2>&1 & + $FSSTRESS_PROG $FSSTRESS_AVOID "$@" >> $seqres.full 2>&1 & _FSSTRESS_PID=$! } diff --git a/tests/generic/270 b/tests/generic/270 index d74971bb535239..ce51592004fe77 100755 --- a/tests/generic/270 +++ b/tests/generic/270 @@ -28,8 +28,8 @@ _workout() args=`_scale_fsstress_args -p128 -n999999999 -f setattr=1 $FSSTRESS_AVOID -d $out` echo "fsstress $args" >> $seqres.full # Grant chown capability - cp $FSSTRESS_PROG $_FSSTRESS_PROG - $SETCAP_PROG cap_chown=epi $_FSSTRESS_PROG + cp $FSSTRESS_PROG $tmp.fsstress.bin + $SETCAP_PROG cap_chown=epi $tmp.fsstress.bin # io_uring accounts memory it needs under the rlimit memlocked option, # which can be quite low on some setups (especially 64K pagesize). root @@ -37,7 +37,7 @@ _workout() # io_uring_queue_init fail on ENOMEM, set max locked memory to unlimited # temporarily. ulimit -l unlimited - _su $qa_user -c "$_FSSTRESS_PROG $args" > /dev/null 2>&1 & + _su $qa_user -c "$tmp.fsstress.bin $args" > /dev/null 2>&1 & _FSSTRESS_PID=$! echo "Run dd writers in parallel" @@ -50,7 +50,9 @@ _workout() sleep $enospc_time done - _kill_fsstress + _pkill -PIPE -f fsstress + pidwait $_FSSTRESS_PID + return 0 } _require_quota diff --git a/tests/generic/482 b/tests/generic/482 index 0efc026a160040..8c114ee03058c6 100755 --- a/tests/generic/482 +++ b/tests/generic/482 @@ -68,6 +68,7 @@ lowspace=$((1024*1024 / 512)) # 1m low space threshold # Use a thin device to provide deterministic discard behavior. Discards are used # by the log replay tool for fast zeroing to prevent out-of-order replay issues. +_test_unmount _dmthin_init $devsize $devsize $csize $lowspace _log_writes_init $DMTHIN_VOL_DEV _log_writes_mkfs >> $seqres.full 2>&1