Commit 51d4c851 authored by Zhao Gongyi's avatar Zhao Gongyi Committed by Shuah Khan
Browse files

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: d89dffa9 ("fault-injection: add selftests for cpu and memory hotplug")

Signed-off-by: default avatarZhao Gongyi <zhaogongyi@huawei.com>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent 195d74be
Loading
Loading
Loading
Loading
+22 −18
Original line number Diff line number Diff line
@@ -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