Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: d89dffa976bc ("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>

authored by

Zhao Gongyi and committed by
Shuah Khan
51d4c851 195d74be

+22 -18
+22 -18
tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh
··· 149 149 fi 150 150 } 151 151 152 + online_all_hot_pluggable_cpus() 153 + { 154 + for cpu in `hotplaggable_offline_cpus`; do 155 + online_cpu_expect_success $cpu 156 + done 157 + } 158 + 159 + offline_all_hot_pluggable_cpus() 160 + { 161 + local reserve_cpu=$online_max 162 + for cpu in `hotpluggable_online_cpus`; do 163 + # Reserve one cpu oneline at least. 164 + if [ $cpu -eq $reserve_cpu ];then 165 + continue 166 + fi 167 + offline_cpu_expect_success $cpu 168 + done 169 + } 170 + 152 171 allcpus=0 153 172 online_cpus=0 154 173 online_max=0 ··· 216 197 echo -e "\t online all offline cpus" 217 198 fi 218 199 219 - # 220 - # Online all hot-pluggable CPUs 221 - # 222 - for cpu in `hotplaggable_offline_cpus`; do 223 - online_cpu_expect_success $cpu 224 - done 200 + online_all_hot_pluggable_cpus 225 201 226 - # 227 - # Offline all hot-pluggable CPUs 228 - # 229 - for cpu in `hotpluggable_online_cpus`; do 230 - offline_cpu_expect_success $cpu 231 - done 202 + offline_all_hot_pluggable_cpus 232 203 233 - # 234 - # Online all hot-pluggable CPUs again 235 - # 236 - for cpu in `hotplaggable_offline_cpus`; do 237 - online_cpu_expect_success $cpu 238 - done 204 + online_all_hot_pluggable_cpus 239 205 240 206 exit $retval