2020-07-14 09:11:18

by Petr Mladek

[permalink] [raw]
Subject: [PATCH v2] selftests/livepatch: adopt to newer sysctl error format

With procfs v3.3.16, the sysctl command doesn't print the set key and
value on error. This change breaks livepatch selftest test-ftrace.sh,
that tests the interaction of sysctl ftrace_enabled:

Make it work with all sysctl versions using '-q' option.

Explicitly print the final status on success so that it can be verified
in the log. The error message is enough on failure.

Reported-by: Kamalesh Babulal <[email protected]>
Signed-off-by: Petr Mladek <[email protected]>
---
The patch has been created against livepatch.git,
branch for-5.9/selftests-cleanup. But it applies also against
the current Linus' tree.

tools/testing/selftests/livepatch/functions.sh | 3 ++-
tools/testing/selftests/livepatch/test-ftrace.sh | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/livepatch/functions.sh b/tools/testing/selftests/livepatch/functions.sh
index 408529d94ddb..1aba83c87ad3 100644
--- a/tools/testing/selftests/livepatch/functions.sh
+++ b/tools/testing/selftests/livepatch/functions.sh
@@ -75,7 +75,8 @@ function set_dynamic_debug() {
}

function set_ftrace_enabled() {
- result=$(sysctl kernel.ftrace_enabled="$1" 2>&1 | paste --serial --delimiters=' ')
+ result=$(sysctl -q kernel.ftrace_enabled="$1" 2>&1 && \
+ sysctl kernel.ftrace_enabled 2>&1)
echo "livepatch: $result" > /dev/kmsg
}

diff --git a/tools/testing/selftests/livepatch/test-ftrace.sh b/tools/testing/selftests/livepatch/test-ftrace.sh
index 9160c9ec3b6f..552e165512f4 100755
--- a/tools/testing/selftests/livepatch/test-ftrace.sh
+++ b/tools/testing/selftests/livepatch/test-ftrace.sh
@@ -51,7 +51,7 @@ livepatch: '$MOD_LIVEPATCH': initializing patching transition
livepatch: '$MOD_LIVEPATCH': starting patching transition
livepatch: '$MOD_LIVEPATCH': completing patching transition
livepatch: '$MOD_LIVEPATCH': patching complete
-livepatch: sysctl: setting key \"kernel.ftrace_enabled\": Device or resource busy kernel.ftrace_enabled = 0
+livepatch: sysctl: setting key \"kernel.ftrace_enabled\": Device or resource busy
% echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
livepatch: '$MOD_LIVEPATCH': starting unpatching transition
--
2.26.2


2020-07-14 10:03:50

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: [PATCH v2] selftests/livepatch: adopt to newer sysctl error format

On 14/07/20 2:40 pm, Petr Mladek wrote:
> With procfs v3.3.16, the sysctl command doesn't print the set key and
> value on error. This change breaks livepatch selftest test-ftrace.sh,
> that tests the interaction of sysctl ftrace_enabled:
>
> Make it work with all sysctl versions using '-q' option.
>
> Explicitly print the final status on success so that it can be verified
> in the log. The error message is enough on failure.
>
> Reported-by: Kamalesh Babulal <[email protected]>
> Signed-off-by: Petr Mladek <[email protected]>

Reviewed-by: Kamalesh Babulal <[email protected]>

--
Kamalesh

2020-07-14 12:39:32

by Joe Lawrence

[permalink] [raw]
Subject: Re: [PATCH v2] selftests/livepatch: adopt to newer sysctl error format

On 7/14/20 5:10 AM, Petr Mladek wrote:
> With procfs v3.3.16, the sysctl command doesn't print the set key and
> value on error. This change breaks livepatch selftest test-ftrace.sh,
> that tests the interaction of sysctl ftrace_enabled:
>
> Make it work with all sysctl versions using '-q' option.
>
> Explicitly print the final status on success so that it can be verified
> in the log. The error message is enough on failure.
>
> Reported-by: Kamalesh Babulal <[email protected]>
> Signed-off-by: Petr Mladek <[email protected]>
> ---
> The patch has been created against livepatch.git,
> branch for-5.9/selftests-cleanup. But it applies also against
> the current Linus' tree.
>
> tools/testing/selftests/livepatch/functions.sh | 3 ++-
> tools/testing/selftests/livepatch/test-ftrace.sh | 2 +-
> 2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/livepatch/functions.sh b/tools/testing/selftests/livepatch/functions.sh
> index 408529d94ddb..1aba83c87ad3 100644
> --- a/tools/testing/selftests/livepatch/functions.sh
> +++ b/tools/testing/selftests/livepatch/functions.sh
> @@ -75,7 +75,8 @@ function set_dynamic_debug() {
> }
>
> function set_ftrace_enabled() {
> - result=$(sysctl kernel.ftrace_enabled="$1" 2>&1 | paste --serial --delimiters=' ')
> + result=$(sysctl -q kernel.ftrace_enabled="$1" 2>&1 && \
> + sysctl kernel.ftrace_enabled 2>&1)
> echo "livepatch: $result" > /dev/kmsg
> }
>
> diff --git a/tools/testing/selftests/livepatch/test-ftrace.sh b/tools/testing/selftests/livepatch/test-ftrace.sh
> index 9160c9ec3b6f..552e165512f4 100755
> --- a/tools/testing/selftests/livepatch/test-ftrace.sh
> +++ b/tools/testing/selftests/livepatch/test-ftrace.sh
> @@ -51,7 +51,7 @@ livepatch: '$MOD_LIVEPATCH': initializing patching transition
> livepatch: '$MOD_LIVEPATCH': starting patching transition
> livepatch: '$MOD_LIVEPATCH': completing patching transition
> livepatch: '$MOD_LIVEPATCH': patching complete
> -livepatch: sysctl: setting key \"kernel.ftrace_enabled\": Device or resource busy kernel.ftrace_enabled = 0
> +livepatch: sysctl: setting key \"kernel.ftrace_enabled\": Device or resource busy
> % echo 0 > /sys/kernel/livepatch/$MOD_LIVEPATCH/enabled
> livepatch: '$MOD_LIVEPATCH': initializing unpatching transition
> livepatch: '$MOD_LIVEPATCH': starting unpatching transition
>

Looks good, thanks.

Reviewed-by: Joe Lawrence <[email protected]>

-- Joe

2020-07-14 13:58:55

by Miroslav Benes

[permalink] [raw]
Subject: Re: [PATCH v2] selftests/livepatch: adopt to newer sysctl error format

On Tue, 14 Jul 2020, Petr Mladek wrote:

> With procfs v3.3.16, the sysctl command doesn't print the set key and
> value on error. This change breaks livepatch selftest test-ftrace.sh,
> that tests the interaction of sysctl ftrace_enabled:
>
> Make it work with all sysctl versions using '-q' option.
>
> Explicitly print the final status on success so that it can be verified
> in the log. The error message is enough on failure.
>
> Reported-by: Kamalesh Babulal <[email protected]>
> Signed-off-by: Petr Mladek <[email protected]>

Acked-by: Miroslav Benes <[email protected]>

M

2020-07-15 07:06:23

by Petr Mladek

[permalink] [raw]
Subject: Re: [PATCH v2] selftests/livepatch: adopt to newer sysctl error format

On Tue 2020-07-14 11:10:30, Petr Mladek wrote:
> With procfs v3.3.16, the sysctl command doesn't print the set key and
> value on error. This change breaks livepatch selftest test-ftrace.sh,
> that tests the interaction of sysctl ftrace_enabled:
>
> Make it work with all sysctl versions using '-q' option.
>
> Explicitly print the final status on success so that it can be verified
> in the log. The error message is enough on failure.
>
> Reported-by: Kamalesh Babulal <[email protected]>
> Signed-off-by: Petr Mladek <[email protected]>

The patch is commited in livepatch.git,
branch for-5.9/selftests-cleanup.

Best Regards,
Petr