Garrett Cooper <[email protected]> 12/25/2009 01:51 AM To Poornima Nayak <[email protected]> cc "[email protected]" <[email protected]>, "[email protected]" <[email protected]>, "[email protected]" <[email protected]>, [email protected] Subject Re: [LTP] [Patch 1/4]Master script modified to enable testcases to run on Power
On Dec 24, 2009, at 10:15 AM, Poornima Nayak <[email protected]> wrote: > Patch to enable Power management testcases in LTP to run on Power > platform > > Signed-off-by: poornima nayak <[email protected]> > > diff -uprN ltp-intermediate-20091209.orig/testcases/kernel/ > power_management/runpwtests.sh ltp-intermediate-20091209.fixes/ > testcases/kernel/power_management/runpwtests.sh > --- ltp-intermediate-20091209.orig/testcases/kernel/power_management/ > runpwtests.sh 2009-12-09 13:18:25.000000000 +0530 > +++ ltp-intermediate-20091209.fixes/testcases/kernel/ > power_management/runpwtests.sh 2009-12-24 23:16:39.859044825 +0530 > @@ -28,10 +28,21 @@ > # History: 26 Aug 2008 - Created this file > # 03 Nov 2008 - Added CPUIDLE sysfs testcase > # > +# Function: main > +# > +# Description: - Execute all tests, exit with test status. > +# > +# Exit: - zero on success > +# - non-zero on failure. > +# > + > +#List of reusable functions defined in pm_include.sh > +. ./pm_include.sh > + > +RC=0 #Return status > > # Exporting Required variables > export TST_TOTAL=1 > -#LTPTMP=${TMP} > export PATH=${PATH}:. > export TCID="Power_Management" > export TST_COUNT=0 > @@ -40,48 +51,39 @@ export analysis="/proctstat" > > YES=0 > NO=1 > -#List of reusable functions defined in pm_include.sh > -. ./pm_include.sh > - > -# Function: main > -# > -# Description: - Execute all tests, exit with test status. > -# > -# Exit: - zero on success > -# - non-zero on failure. > -# > -RC=0 #Return status > > # Checking required kernel version and architecture > tst_kvercmp 2 6 21; rc=$? > if [ $rc -ne 1 -a $rc -ne 2 ] ; then > - tst_resm TCONF "Kernel version not supported; not running > testcases" > - exit 0 > + tst_resm TCONF "Kernel version not supported; not running > testcases" > + exit 0 > else > - case "$(uname -m)" in > - i[4-6]86|x86_64) > + case "$(uname -m)" in > + i[4-6]86|x86_64) > + ;; > + powerpc|ppc|powerpc64|ppc64) > ;; > - *) > - tst_resm TCONF "Arch not supported; not running testcases" > - exit 0 > - ;; > - esac > + *) > + tst_resm TCONF "Arch not supported; not running > testcases" > + exit 0 > + ;; > + esac > fi > > tst_kvercmp 2 6 29; rc=$? > if [ $rc -eq 2 ] ; then > - max_sched_mc=2 > - max_sched_smt=2 > + max_sched_mc=2 > + max_sched_smt=2 > else > - max_sched_mc=1 > - max_sched_smt=1 > + max_sched_mc=1 > + max_sched_smt=1 > fi > > tst_kvercmp 2 6 31; rc=$? > if [ $rc -eq 1 -o $rc -eq 2 ] ; then > - timer_migr_support_compatible=1 > + timer_migr_support_compatible=0 > else > - timer_migr_support_compatible=0 > + timer_migr_support_compatible=1 > fi Why did you invert the logic here? $? => 0 says the kernel version is less, 1 that it's equal, and 2 that it's greater than the version specified. If Kernel version is less then that particular kernel is not suitable for Timer Migration test. Only if kernel version is 2.6.31 and above then Timer migration test has to be executed. In the script YES=0, NO=1 > is_hyper_threaded; hyper_threaded=$? > @@ -90,7 +92,6 @@ is_multi_core; multi_core=$? > is_dual_core; dual_core=$? > > #Checking sched_mc sysfs interface > -#check_config.sh config_sched_mc || RC=$? > TST_COUNT=1 > if [ $multi_socket -eq $YES -a $multi_core -eq $YES ] ; then > if [ -f /sys/devices/system/cpu/sched_mc_power_savings ] ; then > @@ -103,6 +104,25 @@ if [ $multi_socket -eq $YES -a $multi_co > else > tst_resm TCONF "Required kernel configuration for SCHED_MC > NOT set" > fi > + > + : $(( TST_COUNT+=1)) > + if [ -f /proc/sys/kernel/timer_migration ]; then > + if [ $timer_migr_support_compatible -eq $YES ]; then > + if test_timer_migration.sh; then > + tst_resm TPASS "Timer Migration interface test" > + else > + RC=$? > + tst_resm TFAIL "Timer migration interface test" > + fi > + fi > + else > + if [ $supp -eq $YES ]; then > + RC=$? > + tst_resm TFAIL "Timer migration interface missing" > + else > + tst_resm TCONF "Kernel version does not support Timer > migration" > + fi > + fi > else > if [ -f /sys/devices/system/cpu/sched_mc_power_savings ] ; then > tst_resm TFAIL "sched_mc_power_savings interface in system > which is not a multi socket &(/) multi core" > @@ -135,7 +155,6 @@ else > fi > > # Checking cpufreq sysfs interface files > -#check_config.sh config_cpu_freq || RC=$? > : $(( TST_COUNT += 1 )) > if [ -d /sys/devices/system/cpu/cpu0/cpufreq ] ; then > if check_cpufreq_sysfs_files.sh; then > @@ -187,12 +206,13 @@ else > fi > > # sched_domain test > -if ! type python > /dev/null ; then > +which python > /dev/null > +if [ $? -ne 0 ] ; then type is a bourne shell builtin whereas which is a command. Furthermore, you can inline shell true / false checks in branch conditionals. So why did you revert this? Will modify the patch accordingly. > tst_resm TCONF "Python is not installed, CPU Consoldation\ > test cannot run" > else > if [ -f /sys/devices/system/cpu/sched_mc_power_savings ] ; then > - echo "max sched mc $max_sched_mc" > + get_sched_values sched_mc; max_sched_mc=$? > for sched_mc in `seq 0 $max_sched_mc`; do > : $(( TST_COUNT+=1)) > sched_domain.py -c $sched_mc; RC=$? > @@ -210,25 +230,6 @@ else > fi > fi > > -: $(( TST_COUNT+=1)) > -if [ -f /proc/sys/kernel/timer_migration ]; then > - if [ $timer_migr_support_compatible -eq $YES ]; then > - if test_timer_migration.sh; then > - tst_resm TPASS "Timer Migration interface test" > - else > - RC=$? > - tst_resm TFAIL "Timer migration interface test" > - fi > - fi > -else > - if [ $timer_migr_support_compatible -eq $YES ]; then > - RC=$? > - tst_resm TFAIL "Timer migration interface missing" > - else > - tst_resm TCONF "Kernel version does not support Timer > migration" > - fi > -fi > - > if [ $# -gt 0 -a "$1" = "-exclusive" ]; then Sorry for not noticing this sooner. $1 and -exclusive should be prefixed by a character, e.g. x or this will be reported as a [(1) syntax error. Based on your comments I am doing it, as such I have not observed syntax error while executing these testcases > > # Test CPU consolidation > if [ $multi_socket -eq $YES -a $multi_core -eq $YES ]; then > @@ -266,7 +267,7 @@ if [ $# -gt 0 -a "$1" = "-exclusive" ]; > > fi > > - if [ $hyper_threaded -eq $YES -a $multi_socket -eq $YES -a > $multi_core -eq $NO ]; then > + if [ $hyper_threaded -eq $YES ]; then > #Testcase to validate consolidation at core level > for sched_smt in `seq 0 $max_sched_smt`; do > if [ $sched_smt -eq 2 ]; then > @@ -319,7 +320,7 @@ if [ $# -gt 0 -a "$1" = "-exclusive" ]; > fi > > # Verify threads consolidation stops when sched_smt is disabled > in HT systems > - if [ $hyper_threaded -eq $YES -a $multi_socket -eq $YES ]; then > + if [ $hyper_threaded -eq $YES ]; then > # Vary only sched_smt from 1 to 0 when workload is running > and ensure that > # tasks do not consolidate to single core when sched_smt is > set to 0 > : $(( TST_COUNT += 1 )) Thanks, -Garrett ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
