Message ID | 20190110123802.13832-1-colin.king@canonical.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 2b531b6137834a55857a337ac17510d6436b6fbb |
Headers | show |
Series | [V2] selftests: cpu-hotplug: fix case where CPUs offline > CPUs present | expand |
ping? On 10/01/2019 12:38, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > 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> > > --- > > 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 >
On 1/23/19 6:25 AM, Colin Ian King wrote: > ping? > > On 10/01/2019 12:38, Colin King wrote: >> From: Colin Ian King <colin.king@canonical.com> >> >> 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> >> >> --- >> >> V2: remove some debug and an empty line Sorry for the delay. I will take this for 5.0-rc5 thanks, -- Shuah
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