Re: [PATCH v5 7/9] selftests: livepatch: Add provides/obsoletes test scenarios

Yafang Shao <[email protected]>
Newsgroups org.kernel.vger.live-patching,dev.linux.lists.sashiko-reviews
Message-ID <CALOAHbDzY-hWPMd1KkSG2MyqieTQrPOoQNT=YY73ka90Cwa2+A@mail.gmail.com>
On Sun, Aug 9, 2026 at 5:31 PM <[email protected]> wrote:
>
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] Race condition in test-provides-obsoletes.sh leading to flaky test failures.
> --
>
> --- Patch [7]: [PATCH v5 7/9] selftests: livepatch: Add provides/obsoletes test scenarios ---
> commit b45263c641deb4b2b48bbe22a1f0bf862b20a22f
> Author: Yafang Shao <[email protected]>
>
> selftests: livepatch: Add provides/obsoletes test scenarios
>
> This commit adds test scenarios for the new provides/obsoletes mechanism in
> livepatching. It introduces test-provides-obsoletes.sh to verify replacement,
> coexistence, and obsolete features.
>
> > diff --git a/tools/testing/selftests/livepatch/test-provides-obsoletes.sh b/tools/testing/selftests/livepatch/test-provides-obsoletes.sh
> > new file mode 100755
> > index 0000000000000..c740d463f556d
> > --- /dev/null
> > +++ b/tools/testing/selftests/livepatch/test-provides-obsoletes.sh
> [ ... ]
> > +start_test "provides 0 replaces provides 0"
> > +
> > +load_lp $MOD_LIVEPATCH provides=0
> > +load_lp $MOD_ATOMIC provides=0
> > +
> > +mods=($SYSFS_KLP_DIR/*)
> > +nmods=${#mods[@]}
> > +if [[ "$nmods" -ne 1 ]]; then
> > +     die "Expecting one module listed, found $nmods"
> > +fi
>
> [Severity: Medium]
> Could this directory check race with the asynchronous sysfs cleanup of the
> replaced patch?
>
> When load_lp returns, it polls until the new patch's sysfs transition file
> reads '0'. However, in the kernel, klp_try_complete_transition() clears
> klp_transition_patch before scheduling the asynchronous work to free replaced
> patches (klp_free_replaced_patches_async).
>
> If the test checks the directory count immediately, couldn't it sporadically
> see the old patch before the async cleanup completes, causing the test to
> flake with "Expecting one module listed, found 2"?
>
> This same pattern appears in the "same provides replaces" and "obsoletes
> replaces" test cases later in this script.

Makes sense.
I will update it in the next version.

-- 
Regards
Yafang
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.