Re: [PATCH][V2] selftests: cpu-hotplug: fix case where CPUs offline > CPUs present

From: Colin Ian King
Date: Wed Jan 23 2019 - 08:25:10 EST


ping?

On 10/01/2019 12:38, Colin King wrote:
> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> The cpu-hotplug test assumes that we can offline the maximum CPU as
> described by /sys/devices/system/cpu/offline. However, in the case
> where the number of CPUs exceeds like kernel configuration then
> the offline count can be greater than the present count and we end
> up trying to test the offlining of a CPU that is not available to
> offline. Fix this by testing the maximum present CPU instead.
>
> Also, the test currently offlines the CPU and does not online it,
> so fix this by onlining the CPU after the test.
>
> Fixes: d89dffa976bc ("fault-injection: add selftests for cpu and memory hotplug")
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> ---
>
> V2: remove some debug and an empty line
>
> ---
> .../selftests/cpu-hotplug/cpu-on-off-test.sh | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 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 bab13dd025a6..0d26b5e3f966 100755
> --- a/tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh
> +++ b/tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh
> @@ -37,6 +37,10 @@ prerequisite()
> exit $ksft_skip
> fi
>
> + present_cpus=`cat $SYSFS/devices/system/cpu/present`
> + present_max=${present_cpus##*-}
> + echo "present_cpus = $present_cpus present_max = $present_max"
> +
> echo -e "\t Cpus in online state: $online_cpus"
>
> offline_cpus=`cat $SYSFS/devices/system/cpu/offline`
> @@ -151,6 +155,8 @@ online_cpus=0
> online_max=0
> offline_cpus=0
> offline_max=0
> +present_cpus=0
> +present_max=0
>
> while getopts e:ahp: opt; do
> case $opt in
> @@ -190,9 +196,10 @@ if [ $allcpus -eq 0 ]; then
> online_cpu_expect_success $online_max
>
> if [[ $offline_cpus -gt 0 ]]; then
> - echo -e "\t offline to online to offline: cpu $offline_max"
> - online_cpu_expect_success $offline_max
> - offline_cpu_expect_success $offline_max
> + echo -e "\t offline to online to offline: cpu $present_max"
> + online_cpu_expect_success $present_max
> + offline_cpu_expect_success $present_max
> + online_cpu $present_max
> fi
> exit 0
> else
>