On Tue, Oct 13, 2026 at 8:36 PM <[email protected]> wrote:
>
> Thank you for your contribution! Sashiko AI review found 2 potential issue(s)
> to consider:
> - [Medium] selftests: test flakiness from unfiltered dmesg temporal slicing
> - [Medium] selftests: test failure coupled to unrelated kernel/params.c
> pr_debug churn
> --
>
> commit 56bb89808ed29ee403a2b674106329de27cb9b06
> Author: Jim Cromie <[email protected]>
>
> selftests/dyndbg: Add kselftest script to verify dynamic-debug
>
> This commit introduces a dynamic-debug selftest script and a reusable helper
> library for baseline-change-verify testing. It uses spatial control-file
> slicing and temporal syslog slicing to verify valid syntax, error handling,
> and basic queries against the built-in kernel/params.c file.
>
> > diff --git a/tools/testing/selftests/dynamic_debug/dyndbg_selftest.sh
> > b/tools/testing/selftests/dynamic_debug/dyndbg_selftest.sh
> > new file mode 100755
> > index 0000000000000..c1475c7555429
> > --- /dev/null
> > +++ b/tools/testing/selftests/dynamic_debug/dyndbg_selftest.sh
>
> [ ... ]
>
> > +function FT_basic_queries {
> > + v_echo "${GREEN}# BASIC_TESTS ${NC}"
> > + if [ $LACK_DD_BUILTIN -eq 1 ]; then
> > + echo "SKIP - test requires dynamic_debug built into kernel"
> > + return
> > + fi
> > + local f='kernel/params.c'
> > + ddcmd =_ # zero everything
> > +
> > + ddcmd "file $f +mf" "$f"
>
> [Severity: Medium]
> By strictly validating the exact state of kernel/params.c and hashing the
> normalized text, won't this test break if an unrelated upstream commit
> legitimately adds or removes a pr_debug() in kernel/params.c? Does this
> inadvertently couple the selftest to unrelated core kernel changes?
>
Yes, there is a certain amount of dependency / brittleness
IF kernel/params.c is changed in certain ways.
That said
1. kernel/params.c is one of the most stable / unchanging parts of the kernel
2. tests that change flags and verify the changes are needed for
adequate coverage
3. tests against builtin pr_debugs work even when test-modules are not built
4. line numbers are excluded from the verification, eliminating that
source of breakage
> > + ddcmd "file $f +l" "$f"
> > + ddcmd "file $f -m" "$f"
> > + ddcmd "file $f =_" "$f"
>
> [ ... ]
>
> > diff --git
> > a/tools/testing/selftests/dynamic_debug/syslog_hash_validation.sh
> > b/tools/testing/selftests/dynamic_debug/syslog_hash_validation.sh
> > new file mode 100644
> > index 0000000000000..8c6e91f5d9c27
> > --- /dev/null
> > +++ b/tools/testing/selftests/dynamic_debug/syslog_hash_validation.sh
>
> [ ... ]
>
> > +function verify_dmesg_slice {
> > + # Slices dmesg, computes its hash, and verifies it against the
> > database.
> > + # $1 - unique test key (e.g. normal_513)
> > + # $2 - optional start marker (defaults to ${APP}_START_${label})
> > + # $3 - optional end marker (defaults to ${APP}_END_${label})
> > +
> > + local label="$1"
> > + local app="${APP:-DYNDBG}"
> > + local start_marker="${2:-${app}_START_${label}_$$}"
> > + local end_marker="${3:-${app}_END_${label}_$$}"
> > +
> > + # 1. Capture the log slice (exactly once!)
> > + local log_slice=$(dmesg | sed -n "/$start_marker/,/$end_marker/p" | \
> > + grep -E -v "$start_marker|$end_marker" | \
> > + sed -E -e 's/^(\[[^]]*\][[:space:]]*)+//' )
>
> [Severity: Medium]
> Since verify_dmesg_slice captures all kernel logs between test markers and
> hashes the entire block without filtering for test-specific messages, could
> concurrent unrelated kernel subsystems (like networking or RCU) emit printk
> logs that alter the MD5 hash and cause false positive test failures?
>
All my testing has been done on VMs, they are well isolated from
unrelated subsystems.
ISTM most CI-CD testing is done that way.
If needed, we could easily add grep filtering later to select only
relevant messages,
but it adds its own maintenance burden; it doesn't seem like a blocker to me.
> > +
> > + # 2. Compute its fingerprint
> > + local fingerprint=$(echo "$log_slice" | tr -d '\r' | md5sum | cut -d'
> > ' -f1)
> > +
> > + # 3. Verify
> > + verify_fingerprint "$label" "$fingerprint" "Dmesg Log" "$log_slice"
> > +}
>
> --
> Sashiko AI review ·
> https://sashiko.dev/#/patchset/[email protected]?part=1