2022-08-31 23:40:43

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH -next 2/5] selftests/cpu-hotplug: Replace exit with return

On 8/30/22 02:30, Zhao Gongyi wrote:
> Replace exit with return to avoid some offline cpu
> left when offline cpus fail.
>

Some cpus will be left in offline state when online
function exits ...

Can you state this clearly in the change log.

> Signed-off-by: Zhao Gongyi <[email protected]>
> ---
> .../selftests/cpu-hotplug/cpu-on-off-test.sh | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh b/tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh
> index 1169ef82b55e..19028c4c9758 100755
> --- a/tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh
> +++ b/tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh
> @@ -4,6 +4,7 @@
> SYSFS=
> # Kselftest framework requirement - SKIP code is 4.
> ksft_skip=4
> +retval=0
>
> prerequisite()
> {
> @@ -102,10 +103,10 @@ online_cpu_expect_success()
>
> if ! online_cpu $cpu; then
> echo $FUNCNAME $cpu: unexpected fail >&2
> - exit 1
> + let retval=$retval+1
> elif ! cpu_is_online $cpu; then
> echo $FUNCNAME $cpu: unexpected offline >&2
> - exit 1
> + let retval=$retval+1
> fi
> }
>
> @@ -128,10 +129,10 @@ offline_cpu_expect_success()
>
> if ! offline_cpu $cpu; then
> echo $FUNCNAME $cpu: unexpected fail >&2
> - exit 1
> + let retval=$retval+1
> elif ! cpu_is_offline $cpu; then
> echo $FUNCNAME $cpu: unexpected offline >&2
> - exit 1
> + let retval=$retval+1
> fi
> }
>
> @@ -201,7 +202,7 @@ if [ $allcpus -eq 0 ]; then
> offline_cpu_expect_success $present_max
> online_cpu $present_max
> fi
> - exit 0
> + exit $retval
> else
> echo "Full scope test: all hotplug cpus"
> echo -e "\t online all offline cpus"
> @@ -291,3 +292,5 @@ done
>
> echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/CPU_DOWN_PREPARE/error
> /sbin/modprobe -q -r cpu-notifier-error-inject
> +
> +exit $retval

This retval can be ksft_skip value if 4 of them fail. The test
result will be incorrect in this case and will be reported as
a skip. Let's avoid that case.

thanks,
-- Shuah