On Mon, 2009-04-06 at 15:03 +0530, Poornima Nayak wrote:
> Patch to integrate sched_smt cpu consolidation testcase to LTP
>
> Signed-off-by: poornima nayak <[email protected]>
Thanks. Applied.
Regards--
Subrata
>
>
> diff -uprN ltp-full-20090331/testcases/kernel/power_management/pm_include.sh
> ltp_new/testcases/kernel/power_management/pm_include.sh
> --- ltp-full-20090331/testcases/kernel/power_management/pm_include.sh
> 2008-10-23 08:31:35.000000000 -0500
> +++ ltp_new/testcases/kernel/power_management/pm_include.sh 2009-04-06
> 03:31:29.000000000 -0500
> @@ -61,3 +61,43 @@ function get_supporting_govr() {
> cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors |
> uniq
> }
>
> +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 -eq $cpu_cores ]; then
> + echo 0
> + else
> + echo 1
> + fi
> +}
> +
> +function check_input() {
> + validity_check=${2:-valid}
> + testfile=$3
> + if [ "${validity_check}" = "invalid" ] ; then
> + PASS="Testcase FAIL - Able to execute"
> + FAIL="Testcase PASS - Unable to execute"
> + else
> + PASS="Testcase PASS"
> + FAIL="Testcase FAIL"
> + fi
> + for input in ${1}
> + do
> + echo ${input} > ${test_file} 2>/dev/null
> + return_value=$?
> + output=$(cat ${test_file})
> + if [ "${return_value}" = "0" -a "${input}" = "${output}" ] ;
> then
> + echo "${0}: ${PASS}: echo ${input} > ${test_file}"
> + if [ "${validity_check}" = "invalid" ] ; then
> + RC=1
> + fi
> + else
> + echo "${0}: ${FAIL}: echo ${input} > ${test_file}"
> + if [ "${validity_check}" = "valid" ] ; then
> + RC=1
> + fi
> + fi
> + done
> + return $RC
> +}
> +
> diff -uprN ltp-full-20090331/testcases/kernel/power_management/runpwtests.sh
> ltp_new/testcases/kernel/power_management/runpwtests.sh
> --- ltp-full-20090331/testcases/kernel/power_management/runpwtests.sh
> 2009-03-25 01:19:22.000000000 -0500
> +++ ltp_new/testcases/kernel/power_management/runpwtests.sh 2009-04-06
> 03:31:11.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.
> @@ -50,7 +53,7 @@ RC=0 #Return status
> check_kv_arch; RC=$?
> if [ $RC -eq 1 ] ; then
> tst_resm TCONF "Kernel version or Architecture not supported:\
> - Not running testcases"
> +Not running testcases"
> exit 0
> fi
>
> @@ -64,45 +67,110 @@ if [ -f /sys/devices/system/cpu/sched_mc
> # Test CPU consolidation for corresponding sched_mc
> which python > /dev/null
> if [ $? -ne 0 ] ; then
> - tst_resm TCONF "Python is not installed, CPU Consoldation test not run"
> + 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 \
> +sched_mc=1, sched_smt=0"
> + 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 \
> +sched_mc=1, sched_smt=1"
> + 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 \
> +sched_mc=0, sched_smt=1"
> + else
> + tst_resm TPASS "cpu consolidation sched_mc=0,\
> +sched_smt=1"
> + fi
> + else
> + # Test CPU consolidation for sched_mc=1
> + cpu_consolidation.py -w ebizzy -c 1; RC=$?
> + if [ $RC -eq 1 ] ; then
> + tst_resm TFAIL "cpu consolidation test\
> + sched_mc_power set to 1"
> + else
> + tst_resm TPASS "cpu consolidation test for \
> +sched_mc_power set to 1"
> + fi
> + fi
> +
> + # sched_mc =1 and sched_smt =0
> + 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"
> + # 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
> - # 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
> fi
> else
> tst_resm TCONF "Required kernel configuration for SCHED_MC NOT set"
> - 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
> @@ -112,7 +180,7 @@ if [ -d /sys/devices/system/cpu/cpu0/cpu
> modules got failed"
> fi
> else
> - tst_resm TCONF "Required kernel configuration for CPU_FREQ NOT set"
> + tst_resm TCONF "Required kernel configuration for CPU_FREQ NOT set"
> fi
>
> # Checking cpuidle sysfs interface files
> @@ -120,3 +188,19 @@ check_cpuidle_sysfs_files.sh; RC=$?
> if [ $RC -eq 1 ] ; then
> tst_resm TFAIL "CPUIDLE sysfs tests failed"
> fi
> +
> +# Test sched_smt_power_savings interface on HT machines
> +if [ -f /sys/devices/system/cpu/sched_smt_power_savings ] ; then
> + test_sched_smt.sh; RC=$?
> + if [ $RC -eq 1 ] ; then
> + tst_resm TFAIL "SCHED_MC sysfs tests failed"
> + fi
> +else
> + 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"
> + fi
> +fi
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Ltp-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ltp-list
------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list