[Patch 4/4] Patch to integrate all the test scenarios of cpu consolidation test on hyper threaded system to LTP.
Signed-off-by: poornima nayak <[email protected]> diff -uprN ltp_orig/testcases/kernel/power_management/pm_include.sh ltp_patched//testcases/kernel/power_management/pm_include.sh --- ltp_orig/testcases/kernel/power_management/pm_include.sh 2009-03-24 09:25:27.000000000 -0500 +++ ltp_patched//testcases/kernel/power_management/pm_include.sh 2009-03-24 11:55:20.000000000 -0500 @@ -64,10 +64,10 @@ function get_supporting_govr() { function is_hyper_threaded() { siblings=`cat /proc/cpuinfo | grep siblings | uniq | cut -f2 -d':'` cpu_cores=`cat /proc/cpuinfo | grep "cpu cores" | uniq | cut -f2 -d':'` - if [ $siblings > $cpu_cores ]; then - return 1 + if [ $siblings -eq $cpu_cores ]; then + echo 0 else - return 0 + echo 1 fi } diff -uprN ltp_orig/testcases/kernel/power_management/runpwtests.sh ltp_patched//testcases/kernel/power_management/runpwtests.sh --- ltp_orig/testcases/kernel/power_management/runpwtests.sh 2009-03-24 09:25:27.000000000 -0500 +++ ltp_patched//testcases/kernel/power_management/runpwtests.sh 2009-03-24 11:55:36.000000000 -0500 @@ -37,6 +37,9 @@ export PATH=${PATH}:. export TCID="Power Management" export TST_COUNT=0 +#List of reusable functions defined in pm_include.sh +. pm_include.sh + # Function: main # # Description: - Execute all tests, exit with test status. @@ -66,43 +69,97 @@ if [ -f /sys/devices/system/cpu/sched_mc if [ $? -ne 0 ] ; then tst_resm TCONF "Python is not installed, CPU Consoldation test not run" else - # Trigger ebizzy workload for sched_mc_power_saving 1 - cpu_consolidation.py -w ebizzy -l 1; RC=$? - if [ $RC -eq 1 ] ; then - tst_resm TFAIL "cpu consolidation test failed" + # Test CPU consolidation on hyper-threaded system + hyper_threaded=$(is_hyper_threaded) + if [ $hyper_threaded -eq 1 ]; then + cpu_consolidation.py -w ebizzy -c 1 -t 0; RC=$? + if [ $RC -eq 1 ] ; then + tst_resm TFAIL "cpu consolidation test " + else + tst_resm TPASS "cpu consolidation sched_mc=1, sched_smt=0" + fi + cpu_consolidation.py -w ebizzy -c 1 -t 1; RC=$? + if [ $RC -eq 1 ] ; then + tst_resm TFAIL "cpu consolidation test " + else + tst_resm TPASS "cpu consolidation sched_mc=1, sched_smt=1" + fi + cpu_consolidation.py -w ebizzy -c 0 -t 1; RC=$? + if [ $RC -eq 1 ] ; then + tst_resm TFAIL "cpu consolidation test " + else + tst_resm TPASS "cpu consolidation sched_mc=0, sched_smt=1" + fi + else + # Trigger ebizzy workload for sched_mc_power_saving 1 + cpu_consolidation.py -w ebizzy -c 1; RC=$? + if [ $RC -eq 1 ] ; then + tst_resm TFAIL "cpu consolidation test " + else + tst_resm TPASS "cpu consolidation test for sched_mc_power set to 1" + fi + fi + + # sched_mc =1 and sched_smt =0 + hyper_threaded=$(is_hyper_threaded) + echo "hyper $hyper_threaded" + if [ $hyper_threaded -eq 1 ]; then + # sched_mc =1 and sched_smt =0 + sched_domain.py -c 1 -t 0; RC=$? + if [ $RC -eq 1 ] ; then + tst_resm TFAIL "sched domain test sched_mc=1,sched_smt=0 " + else + tst_resm TPASS "sched domain test sched_mc=1,sched_smt=0 " + fi + + # sched_mc =1 and sched_smt =1 + sched_domain.py -c 1 -t 1; RC=$? + if [ $RC -eq 1 ] ; then + tst_resm TFAIL "sched domain test sched_mc=1,sched_smt=1 " + else + tst_resm TPASS "sched domain test sched_mc=1,sched_smt=1 " + fi + + # sched_mc =0 and sched_smt =1 + sched_domain.py -c 0 -t 1; RC=$? + if [ $RC -eq 1 ] ; then + tst_resm TFAIL "sched domain test sched_mc=0,sched_smt=1 " + else + tst_resm TPASS "sched domain test sched_mc=0,sched_smt=1 " + fi else - tst_resm TPASS "cpu consolidation test for sched_mc_power set to 1" - fi - # Validate CPU level sched domain topology validation - sched_domain.py; RC=$? - if [ $RC -eq 1 ] ; then - tst_resm TFAIL "sched domain topology validation test failed" - else - tst_resm TPASS "sched domain topology validation test passed" - fi + # Validate CPU level sched domain topology validation + sched_domain.py -c 1; RC=$? + if [ $RC -eq 1 ] ; then + tst_resm TFAIL "sched domain test for sched_mc=1 " + else + tst_resm TPASS "sched domain test for sched_mc=1 " + fi + fi fi else tst_resm TCONF "Required kernel configuration for SCHED_MC NOT set" - exit 0 + exit 0 fi # Checking cpufreq sysfs interface files #check_config.sh config_cpu_freq || RC=$? if [ -d /sys/devices/system/cpu/cpu0/cpufreq ] ; then check_cpufreq_sysfs_files.sh; RC=$? if [ $RC -eq 1 ] ; then - tst_resm TFAIL "CPUFREQ sysfs tests failed" + tst_resm TFAIL "CPUFREQ sysfs tests " fi # Changing governors change_govr.sh; RC=$? if [ $RC -eq 1 ] ; then - tst_resm TFAIL "Changing governors failed" + tst_resm TFAIL "Changing governors " fi # Changing frequencies change_freq.sh; RC=$? if [ $RC -eq 1 ] ; then - tst_resm TFAIL "Changing frequncies failed" + tst_resm TFAIL "Changing frequncies " fi # Loading and Unloading governor related kernel modules @@ -128,8 +185,8 @@ if [ -f /sys/devices/system/cpu/sched_sm tst_resm TFAIL "SCHED_MC sysfs tests failed" fi else - is_hyper_threaded; hyper_threaded = $? - if [ $hyper_threaded == 1 ]; then + hyper_threaded=$(is_hyper_threaded) + if [ $hyper_threaded -eq 1 ]; then tst_resm TFAIL "Required kernel configuration for SCHED_SMT NOT set" else tst_resm TCONF "Required Hyper Threading support in the system under test" ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
