Thank you Joe and Steven for your comments; I sent V3. Andrey
On Fri, Jul 31, 2026 at 8:31 PM Joe Lawrence <[email protected]> wrote: > > On Fri, Jul 31, 2026 at 01:53:58PM -0400, Andrey Grodzovsky wrote: > > kernel.ftrace_enabled=0 is now refused on kernels that deprecate the > > knob, so the old disable/reload flow no longer applies there. Probe > > for this with ftrace_disable_supported() and keep the full original > > scenario (disable, fail to load a livepatch, re-enable, load, confirm > > disable is refused while loaded) on kernels where it still works; > > otherwise just confirm the write is refused. > > > > Suggested-by: Steven Rostedt <[email protected]> > > Suggested-by: Miroslav Benes <[email protected]> > > Assisted-by: Claude:claude-sonnet-5 > > Signed-off-by: Andrey Grodzovsky <[email protected]> > > --- > > > > .../testing/selftests/livepatch/https://urldefense.com/v3/__http://functions.sh__;!!BmdzS3_lV9HdKG8!zXXcFqHACaJ7PyoFMFh-_8DFTwWSotPltPcR5ezYC87VaVkoNZcqFkVTtLbYUQp4DKEh9Z-0WLN8c5sMeyug2BCCuslAibAtHJo$ > > | 13 ++++++ > > > > .../selftests/livepatch/https://urldefense.com/v3/__http://test-ftrace.sh__;!!BmdzS3_lV9HdKG8!zXXcFqHACaJ7PyoFMFh-_8DFTwWSotPltPcR5ezYC87VaVkoNZcqFkVTtLbYUQp4DKEh9Z-0WLN8c5sMeyug2BCCuslAJf9tNxM$ > > | 45 ++++++++++++------- > > 2 files changed, 41 insertions(+), 17 deletions(-) > > > > diff --git > > a/tools/testing/selftests/livepatch/https://urldefense.com/v3/__http://functions.sh__;!!BmdzS3_lV9HdKG8!zXXcFqHACaJ7PyoFMFh-_8DFTwWSotPltPcR5ezYC87VaVkoNZcqFkVTtLbYUQp4DKEh9Z-0WLN8c5sMeyug2BCCuslAibAtHJo$ > > > > b/tools/testing/selftests/livepatch/https://urldefense.com/v3/__http://functions.sh__;!!BmdzS3_lV9HdKG8!zXXcFqHACaJ7PyoFMFh-_8DFTwWSotPltPcR5ezYC87VaVkoNZcqFkVTtLbYUQp4DKEh9Z-0WLN8c5sMeyug2BCCuslAibAtHJo$ > > index 30dc677b2f45..7fa4bda70221 100644 > > --- > > a/tools/testing/selftests/livepatch/https://urldefense.com/v3/__http://functions.sh__;!!BmdzS3_lV9HdKG8!zXXcFqHACaJ7PyoFMFh-_8DFTwWSotPltPcR5ezYC87VaVkoNZcqFkVTtLbYUQp4DKEh9Z-0WLN8c5sMeyug2BCCuslAibAtHJo$ > > +++ > > b/tools/testing/selftests/livepatch/https://urldefense.com/v3/__http://functions.sh__;!!BmdzS3_lV9HdKG8!zXXcFqHACaJ7PyoFMFh-_8DFTwWSotPltPcR5ezYC87VaVkoNZcqFkVTtLbYUQp4DKEh9Z-0WLN8c5sMeyug2BCCuslAibAtHJo$ > > @@ -126,6 +126,19 @@ function set_ftrace_enabled() { > > echo "livepatch: kernel.ftrace_enabled = $result" > /dev/kmsg > > } > > > > +# ftrace_disable_supported() - probe whether kernel.ftrace_enabled=0 > > +# can still disable ftrace on this kernel. Newer kernels deprecate > > +# the knob and always refuse the write with -EOPNOTSUPP. > > +function ftrace_disable_supported() { > > + local result > > + > > + sysctl -q kernel.ftrace_enabled=0 &> /dev/null > > + result=$(sysctl --values kernel.ftrace_enabled) > > + sysctl -q kernel.ftrace_enabled=1 &> /dev/null > > + > > + [[ "$result" == "0" ]] > > +} > > Small nit: AFAICT, it doesn't really affect the test pattern, but it > would be a bit cleaner if this function restored the original value > instead of always turning it on, like (untested): > > orig=$(sysctl --values kernel.ftrace_enabled) > sysctl -q kernel.ftrace_enabled=0 &> /dev/null > result=$(sysctl --values kernel.ftrace_enabled) > sysctl -q "kernel.ftrace_enabled=$orig" &> /dev/null > > [[ "$result" == "0" ]] > > -- > Joe >
