Message ID | 20240920115631.54142-3-mvetter@suse.com |
---|---|
State | New |
Headers | show |
Series | selftests: livepatch: test livepatching a kprobed function | expand |
Hi, On Fri, 20 Sep 2024, Michael Vetter wrote: > Save the state of /sys/kernel/livepatch/debug/kprobes/enabled I believe it is /sys/kernel/debug/kprobes/enabled. > during setup_config() and restore it during cleanup(). > > This is in preparation for a future commit that will add a test > that should confirm that we cannot livepatch a kprobed function > if that kprobe has a post handler. > > Signed-off-by: Michael Vetter <mvetter@suse.com> > --- > tools/testing/selftests/livepatch/functions.sh | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/livepatch/functions.sh b/tools/testing/selftests/livepatch/functions.sh > index 50361fceff06..6684c01c0567 100644 > --- a/tools/testing/selftests/livepatch/functions.sh > +++ b/tools/testing/selftests/livepatch/functions.sh > @@ -6,7 +6,10 @@ > > MAX_RETRIES=600 > RETRY_INTERVAL=".1" # seconds > -SYSFS_KLP_DIR="/sys/kernel/livepatch" > +SYSFS_KERNEL_DIR="/sys/kernel" > +SYSFS_KLP_DIR="$SYSFS_KERNEL_DIR/livepatch" > +SYSFS_DEBUG_DIR="$SYSFS_KERNEL_DIR/debug" > +SYSFS_KPROBES_DIR="$SYSFS_DEBUG_DIR/kprobes" Personally I find this harder to read but it is a nit and Petr asked you to do it, but > # Kselftest framework requirement - SKIP code is 4 > ksft_skip=4 > @@ -58,6 +61,7 @@ function push_config() { > DYNAMIC_DEBUG=$(grep '^kernel/livepatch' /sys/kernel/debug/dynamic_debug/control | \ it stays opencoded here and also elsewhere which is not great. Could it be consistent, please? Otherwise I would just squash the patch to the next one. Thank you, Miroslav
diff --git a/tools/testing/selftests/livepatch/functions.sh b/tools/testing/selftests/livepatch/functions.sh index 50361fceff06..6684c01c0567 100644 --- a/tools/testing/selftests/livepatch/functions.sh +++ b/tools/testing/selftests/livepatch/functions.sh @@ -6,7 +6,10 @@ MAX_RETRIES=600 RETRY_INTERVAL=".1" # seconds -SYSFS_KLP_DIR="/sys/kernel/livepatch" +SYSFS_KERNEL_DIR="/sys/kernel" +SYSFS_KLP_DIR="$SYSFS_KERNEL_DIR/livepatch" +SYSFS_DEBUG_DIR="$SYSFS_KERNEL_DIR/debug" +SYSFS_KPROBES_DIR="$SYSFS_DEBUG_DIR/kprobes" # Kselftest framework requirement - SKIP code is 4 ksft_skip=4 @@ -58,6 +61,7 @@ function push_config() { DYNAMIC_DEBUG=$(grep '^kernel/livepatch' /sys/kernel/debug/dynamic_debug/control | \ awk -F'[: ]' '{print "file " $1 " line " $2 " " $4}') FTRACE_ENABLED=$(sysctl --values kernel.ftrace_enabled) + KPROBE_ENABLED=$(cat $SYSFS_KPROBES_DIR/enabled) } function pop_config() { @@ -67,6 +71,9 @@ function pop_config() { if [[ -n "$FTRACE_ENABLED" ]]; then sysctl kernel.ftrace_enabled="$FTRACE_ENABLED" &> /dev/null fi + if [[ -n "$KPROBE_ENABLED" ]]; then + echo "$KPROBE_ENABLED" > "$SYSFS_KPROBES_DIR/enabled" + fi } function set_dynamic_debug() {
Save the state of /sys/kernel/livepatch/debug/kprobes/enabled during setup_config() and restore it during cleanup(). This is in preparation for a future commit that will add a test that should confirm that we cannot livepatch a kprobed function if that kprobe has a post handler. Signed-off-by: Michael Vetter <mvetter@suse.com> --- tools/testing/selftests/livepatch/functions.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)