selftests/cpu-hotplug: Reserve one cpu online at least

Considering that we can not offline all cpus in any cases,
we need to reserve one cpu online when the test offline all
hotpluggable online cpus, otherwise the test will fail forever.

Fixes: d89dffa976 ("fault-injection: add selftests for cpu and memory hotplug")

Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
Zhao Gongyi 2022-09-05 21:36:14 +08:00 committed by Shuah Khan
parent 195d74be71
commit 51d4c85146
1 changed files with 22 additions and 18 deletions

View File

@ -149,6 +149,25 @@ offline_cpu_expect_fail()
fi
}
online_all_hot_pluggable_cpus()
{
for cpu in `hotplaggable_offline_cpus`; do
online_cpu_expect_success $cpu
done
}
offline_all_hot_pluggable_cpus()
{
local reserve_cpu=$online_max
for cpu in `hotpluggable_online_cpus`; do
# Reserve one cpu oneline at least.
if [ $cpu -eq $reserve_cpu ];then
continue
fi
offline_cpu_expect_success $cpu
done
}
allcpus=0
online_cpus=0
online_max=0
@ -197,25 +216,10 @@ else
echo -e "\t online all offline cpus"
fi
#
# Online all hot-pluggable CPUs
#
for cpu in `hotplaggable_offline_cpus`; do
online_cpu_expect_success $cpu
done
online_all_hot_pluggable_cpus
#
# Offline all hot-pluggable CPUs
#
for cpu in `hotpluggable_online_cpus`; do
offline_cpu_expect_success $cpu
done
offline_all_hot_pluggable_cpus
#
# Online all hot-pluggable CPUs again
#
for cpu in `hotplaggable_offline_cpus`; do
online_cpu_expect_success $cpu
done
online_all_hot_pluggable_cpus
exit $retval