]> www.infradead.org Git - users/hch/xfstests-dev.git/commitdiff
dmesg: reduce noise from other tests
authorDave Chinner <dchinner@redhat.com>
Tue, 26 Nov 2024 21:00:55 +0000 (08:00 +1100)
committerZorro Lang <zlang@kernel.org>
Sun, 8 Dec 2024 14:11:49 +0000 (22:11 +0800)
dmesg records everything from every test concurrently running, so
noise from other tests can cause multiple other tests to fail
because they detect something from another test. Update the filter
behaviour to minimise this crosstalk problem.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Zorro lang <zlang@redhat.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
common/rc
tests/generic/310
tests/xfs/079

index b7f885fb80a6e8260cf2d737ea60045122e9ba11..3ab75fc889eedda2a49be824c95b37e084e42082 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -4617,6 +4617,7 @@ _check_dmesg_filter()
 
        grep -E -v -e "BUG: MAX_LOCKDEP_CHAIN_HLOCKS too low" \
                -e "BUG: MAX_STACK_TRACE_ENTRIES too low" \
+               -e "WARNING: Reset corrupted AGFL" \
                $extra_filter
 }
 
@@ -4639,18 +4640,18 @@ _check_dmesg()
        fi
        rm -f ${RESULT_DIR}/check_dmesg
 
-       # default filter is a simple cat command, caller could provide a
-       # customized filter and pass the name through the first argument, to
-       # filter out intentional WARNINGs or Oopses
-       local filter=${1:-_check_dmesg_filter}
+       # we always filter dmesg for global things that should not cause
+       # test failures. Custom filters are then applied afterwards.
+       _dmesg_since_test_start | _check_dmesg_filter > $seqres.dmesg
+       if [ -n "$1" ]; then
+               cat $seqres.dmesg | $1 > $seqres.dmesg
+       fi
 
-       _dmesg_since_test_start | $filter >$seqres.dmesg
        grep -E -q -e "kernel BUG at" \
             -e "WARNING:" \
             -e "\bBUG:" \
             -e "Oops:" \
             -e "possible recursive locking detected" \
-            -e "Internal error" \
             -e "(INFO|ERR): suspicious RCU usage" \
             -e "INFO: possible circular locking dependency detected" \
             -e "general protection fault:" \
index 1ae9e0233b5cb359adb42455b22d611903ad1e6d..1ab81dd2e344a65c7f39bc698fff8a132a43013f 100755 (executable)
@@ -46,7 +46,6 @@ _require_test
 dmesg -c > /dev/null
 
 nr_bug=`dmesg | grep -c "kernel BUG"`
-nr_error=`dmesg | grep -wc "error"`
 nr_null=`dmesg | grep -c "kernel NULL pointer dereference"`
 nr_warning=`dmesg | grep -c "^WARNING"`
 nr_lockdep=`dmesg | grep -c "possible recursive locking detected"`
@@ -55,20 +54,18 @@ nr_lockdep=`dmesg | grep -c "possible recursive locking detected"`
 check_kernel_bug()
 {
        new_bug=`dmesg | grep -c "kernel BUG"`
-       new_error=`dmesg | grep -wc "error"`
        new_null=`dmesg | grep -c "kernel NULL pointer dereference"`
        new_warning=`dmesg | grep -c "^WARNING"`
        new_lockdep=`dmesg | grep -c "possible recursive locking detected"`
 
        # no kernel bug is detected
-       if [ $new_bug -eq $nr_bug -a $new_error -eq $nr_error -a \
+       if [ $new_bug -eq $nr_bug -a \
             $new_null -eq $nr_null -a $new_warning -eq $nr_warning -a \
             $new_lockdep -eq $nr_lockdep ]; then
                return 0
        fi
 
        nr_bug=$new_bug
-       nr_error=$new_error
        nr_null=$new_null
        nr_warning=$new_warning
        nr_lockdep=$new_lockdep
index 4a1999bb87ae4f818366c952a38f2453ce0445c2..3287a20fb93001c536548fa64b4233516aacc0f9 100755 (executable)
@@ -45,7 +45,7 @@ _try_scratch_mount "-o logbsize=64k"
 
 # The mount may not fail on v4 filesystems. Check for CRC mismatch warning
 # messages to detect failure in this case.
-dmesg -c | grep XFS | grep CRC
+_dmesg_since_test_start | grep "XFS $(_short_dev $SCRATCH_DEV)" | grep CRC
 
 # success, all done
 status=0