Re: [LTP] [PATCH 2/3] Fix cpuhotplug test case cpuhotplug03

Wanlong Gao
2012-11-14T06:30:27Z

On 11/12/2012 03:34 PM, jin.li@windriver.com wrote:
> From: Jin Li <jin.li@windriver.com>
>
> Fix test case cpuhotplug03 as follows:
> 1. Avoid to check whether the cpu0 is on.
> 2. Check the cpu before turn it on
>
> Signed-off-by: Jin Li <jin.li@windriver.com>
> ---
> .../hotplug/cpu_hotplug/functional/cpuhotplug03.sh | 21 ++++++++++++++-------
> 1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/testcases/kernel/hotplug/cpu_hotplug/functional/cpuhotplug03.sh b/testcases/kernel/hotplug/cpu_hotplug/functional/cpuhotplug03.sh
> index ca636d1..516a21f 100755
> --- a/testcases/kernel/hotplug/cpu_hotplug/functional/cpuhotplug03.sh
> +++ b/testcases/kernel/hotplug/cpu_hotplug/functional/cpuhotplug03.sh
> @@ -60,15 +60,22 @@ until [ $TST_COUNT -gt $TST_TOTAL ]; do
>
> # Turns on all CPUs and saves their states
> for i in $( get_all_cpus ); do
> - if ! online_cpu $1; then
> - : $(( cpu += 1 ))
> - eval "on_${cpu}=$i"
> - fi
> + if [ "$i" = "cpu0" ]; then
> + continue
> + fi
> + if ! cpu_is_online $i; then
> + if ! online_cpu $i; then
> + tst_resm TFAIL "Could not online cpu $i"
> + exit_clean 1
> + fi
> + : $(( cpu += 1 ))
> + eval "on_${cpu}=$i"
> + fi
> : $(( number_of_cpus += 1 ))
> done
>
> if ! offline_cpu ${CPU_TO_TEST} ; then
> - tst_resm TBAIL "CPU${CPU_TO_TEST} cannot be offlined"
> + tst_resm TFAIL "CPU${CPU_TO_TEST} cannot be offlined"
> exit_clean 1
> fi
>
> @@ -90,7 +97,7 @@ until [ $TST_COUNT -gt $TST_TOTAL ]; do
> tst_resm TINFO "Onlining CPU ${CPU_TO_TEST}"
> online_cpu ${CPU_TO_TEST}
> RC=$?
> - if [ $RC -eq 0 ]; then
> + if [ $RC -ne 0 ]; then
> tst_resm TFAIL "CPU${CPU_TO_TEST} cannot be onlined"

I test with your patch and always failed here,
Running tests.......
<<<test_start>>>
tag=cpuhotplug03 stime=1352874488
cmdline="export CPU_TO_TEST=1; $LTPROOT/testcases/bin/cpu_hotplug/functional/cpuhotplug03.sh"
contacts=""
analysis=exit
<<<test_output>>>
incrementing stop
Name: cpuhotplug03
Date: Wed Nov 14 14:28:08 CST 2012
Desc: Do tasks get scheduled to a newly on-lined CPU?

CPU is 1
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 31631 3.0 0.0 134116 1556 pts/1 R 14:28 0:00 /bin/sh /opt/ltp/testcases/bin/cpu_hotplug/tools/do_spin_loop
root 31632 0.0 0.0 134116 1560 pts/1 R 14:28 0:00 /bin/sh /opt/ltp/testcases/bin/cpu_hotplug/tools/do_spin_loop
root 31634 0.0 0.0 134116 1560 pts/1 R 14:28 0:00 /bin/sh /opt/ltp/testcases/bin/cpu_hotplug/tools/do_spin_loop
root 31635 0.0 0.0 134116 1560 pts/1 R 14:28 0:00 /bin/sh /opt/ltp/testcases/bin/cpu_hotplug/tools/do_spin_loop
root 31636 0.0 0.0 134116 1560 pts/1 R 14:28 0:00 /bin/sh /opt/ltp/testcases/bin/cpu_hotplug/tools/do_spin_loop
root 31637 0.0 0.0 134116 1560 pts/1 R 14:28 0:00 /bin/sh /opt/ltp/testcases/bin/cpu_hotplug/tools/do_spin_loop
root 31638 2.0 0.0 134116 1560 pts/1 R 14:28 0:00 /bin/sh /opt/ltp/testcases/bin/cpu_hotplug/tools/do_spin_loop
root 31639 1.0 0.0 134116 1560 pts/1 R 14:28 0:00 /bin/sh /opt/ltp/testcases/bin/cpu_hotplug/tools/do_spin_loop
root 31643 0.0 0.0 133488 1304 pts/1 S 14:28 0:00 grep do_spin_loop
cpuhotplug03 0 TINFO : Onlining CPU 1
cpuhotplug03 1 TFAIL : CPU1 cannot be onlined
Wed Nov 14 14:28:08 CST 2012
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=1 corefile=no
cutime=37 cstime=4
<<<test_end>>>
INFO: ltp-pan reported some tests FAIL
LTP Version: 20120903-133-gb631790

###############################################################

Done executing testcases.
LTP Version: 20120903-133-gb631790
###############################################################

Thanks,
Wanlong Gao

> exit_clean 1
> fi
> @@ -101,7 +108,7 @@ until [ $TST_COUNT -gt $TST_TOTAL ]; do
> ps -o psr -o command --no-headers -C do_spin_loop
> RC=$?
> NUM=`ps -o psr -o command --no-headers -C do_spin_loop | sed -e "s/^ *//" | cut -d' ' -f 1 | grep "^${CPU_TO_TEST}$" | wc -l`
> - if [ $RC -eq 0 ]; then
> + if [ $RC -ne 0 ]; then
> tst_resm TBROK "No do_spin_loop processes found on any processor"
> elif [ $NUM -lt 1 ]; then
> tst_resm TFAIL "No do_spin_loop processes found on CPU${CPU_TO_TEST}"