| From a7e3242754442c482e7c52312a012449bb331b7d Mon Sep 17 00:00:00 2001 |
| From: Colin Ian King <colin.king@canonical.com> |
| Date: Thu, 10 Jan 2019 12:38:02 +0000 |
| Subject: selftests: cpu-hotplug: fix case where CPUs offline > CPUs present |
| |
| [ Upstream commit 2b531b6137834a55857a337ac17510d6436b6fbb ] |
| |
| 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@canonical.com> |
| Signed-off-by: Shuah Khan <shuah@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| .../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 |
| -- |
| 2.19.1 |
| |