From: Poornima Nayak <mpnayak@linux.vnet.ibm.com>
To: ltp-list@lists.sourceforge.net
Subject: [LTP] [Patch 8/10]New set of reusbale Library functions and fixes
Date: Tue, 30 Jun 2009 20:28:15 +0530 [thread overview]
Message-ID: <20090630145815.11163.6728.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20090630145706.11163.54040.sendpatchset@localhost.localdomain>
[Patch 8/10]New set of reusbale Library functions and fixes
Signed-off-by: poornima nayak <mpnayak@linux.vnet.ibm.com>
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-06-30 15:04:19.000000000 +0530
+++ ltp_patched/testcases/kernel/power_management/pm_include.sh 2009-06-30 16:06:32.000000000 +0530
@@ -7,6 +7,7 @@ FAIL=1
NOSUPPORT=2
MISSING_FILE=3
UNTESTED=4
+YES=0
function cleanup() {
if [ -f ${1} ] ; then
@@ -65,9 +66,9 @@ 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
+ return 1
else
- echo 1
+ return 0
fi
}
@@ -101,4 +102,291 @@ function check_input() {
done
return $RC
}
-
+
+function is_multi_socket() {
+ no_of_sockets=`cat /sys/devices/system/cpu/cpu?/topology/physical_package_id | uniq | wc -l`
+ if [ $no_of_sockets -gt 1 ] ; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+function get_kernel_version() {
+ # Get kernel minor version
+ export kernel_version=`uname -r | awk -F. '{print $1"."$2"."$3}' | cut -f1 -d'-'`
+}
+
+function get_valid_input() {
+ kernel_version=$1
+ case "$kernel_version" in
+ '2.6.29' | '2.6.30' | '2.6.31')
+ export valid_input="0 1 2" ;;
+ *) export valid_input="0 1" ;;
+ esac
+}
+
+function get_max_sched_mc() {
+ get_kernel_version
+ case "$kernel_version" in
+ '2.6.29' | '2.6.30' | '2.6.31')
+ return 2
+ ;;
+ '2.6.26' | '2.6.27' | '2.6.28')
+ return 1
+ ;;
+ *)
+ return 0
+ ;;
+ esac
+}
+
+function get_max_sched_smt() {
+ get_kernel_version
+ case "$kernel_version" in
+ '2.6.29' | '2.6.30' | '2.6.31')
+ return 2
+ ;;
+ '2.6.26' | '2.6.27' | '2.6.28')
+ return 1
+ ;;
+ *)
+ return 0
+ ;;
+ esac
+}
+
+function check_supp_wkld() {
+ sched_mcsmt=$1
+ work_load=$2
+
+ case "$sched_mcsmt" in
+ 1) if [ "$work_load" == "ebizzy" ]; then
+ return 0
+ else
+ return 1
+ fi
+ ;;
+ 2) if [ "$work_load" == "ebizzy" -o "$work_load" == "kernbench" ]; then
+ return 0
+ else
+ return 1
+ fi
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+}
+
+function analyze_wrt_workload_hyperthreaded() {
+ sched_mc=$1
+ work_load=$2
+ pass_count=$3
+ sched_smt=$4
+ stress=$5
+
+ if [ $sched_mc > $sched_smt ]; then
+ check_supp_wkld $sched_mc $work_load; valid_workload=$?
+ else
+ check_supp_wkld $sched_smt $work_load; valid_workload=$?
+ fi
+
+ if [ "$stress" = "thread" ]; then
+ case "$valid_workload" in
+ 0)
+ if [ $pass_count -lt 5 ]; then
+ RC=1
+ tst_resm TFAIL "Consolidation at core level failed for \
+sched_mc=$sched_mc, sched_smt=$sched_smt for workload=$work_load"
+ else
+ tst_resm TPASS "Consolidation at core level passed for \
+sched_mc=$sched_mc, sched_smt=$sched_smt & workload=$work_load"
+ fi ;;
+ 1)
+ if [ $pass_count -lt 5 ]; then
+ tst_resm TPASS "Consolidation at core level failed for \
+unsupported workload $work_load when sched_mc=$sched_mc & sched_smt=$sched_smt"
+ else
+ RC=1
+ tst_resm TFAIL "Consolidation at core level passed for \
+unsupported workload $work_load when sched_mc=$sched_mc & sched_smt=$sched_smt"
+ fi ;;
+ esac
+ else
+ case "$valid_workload" in
+ 0)
+ if [ $pass_count -lt 5 ]; then
+ RC=1
+ tst_resm TFAIL "Consolidation at package level failed for \
+sched_mc=$sched_mc, sched_smt=$sched_smt for workload=$work_load"
+ else
+ tst_resm TPASS "Consolidation at package level passed for \
+sched_mc=$sched_mc, sched_smt=$sched_smt & workload=$work_load"
+ fi ;;
+ 1)
+ echo "pass count is $pass_count"
+ if [ $pass_count -lt 5 ]; then
+ tst_resm TPASS "Consolidation at package level failed for \
+unsupported workload $work_load when sched_mc=$sched_mc & sched_smt=$sched_smt"
+ else
+ RC=1
+ tst_resm TFAIL "Consolidation at package level passed for \
+unsupported workload $work_load when sched_mc=$sched_mc & sched_smt=$sched_smt"
+ fi ;;
+ esac
+ fi
+}
+
+function analyze_wrt_wkld() {
+ sched_mc=$1
+ work_load=$2
+ pass_count=$3
+ sched_smt=$4
+ stress=$5
+
+ check_supp_wkld $sched_mc $work_load; valid_workload=$?
+ if [ $hyper_threaded -eq $YES ]; then
+ analyze_wrt_workload_hyperthreaded $sched_mc $work_load $pass_count\
+ $sched_smt $stress
+ else
+ case "$valid_workload" in
+ 0)
+ if [ "$pass_count" -lt 5 ]; then
+ RC=1
+ tst_resm TFAIL "cpu consolidation failed for \
+sched_mc=$sched_mc for workload=$work_load"
+ else
+ tst_resm TPASS "cpu consolidation passed for \
+sched_mc=$sched_mc for workload=$work_load"
+ fi ;;
+ 1)
+ if [ "$pass_count" -lt 5 ]; then
+ tst_resm TPASS "cpu consolidation failed for \
+unsupported workload $work_load when sched_mc=$sched_mc"
+ else
+ RC=1
+ tst_resm TFAIL "cpu consolidation passed for \
+unsupported workload $work_load when sched_mc=$sched_mc"
+ fi ;;
+ esac
+ fi
+}
+
+function analyze_result_hyperthreaded() {
+ sched_mc=$1
+ work_load=$2
+ pass_count=$3
+ sched_smt=$4
+ stress=$5
+
+ case "$sched_mc" in
+ 0)
+ if [ $sched_smt ]; then
+ case "$sched_smt" in
+ 0)
+ if [ "$stress" = "thread" ]; then
+ if [ $pass_count -lt 1 ]; then
+ tst_resm TPASS "Consolidation at core level failed for sched_mc=\
+$sched_mc & sched_smt=$sched_smt for workload=$work_load"
+ else
+ RC=1
+ tst_resm TFAIL "Consolidation at core level passed for sched_mc=\
+$sched_mc & sched_smt=$sched_smt for workload=$work_load"
+ fi
+ else
+ if [ "$pass_count" -lt 1 ]; then
+ tst_resm TPASS "cpu consolidation failed for sched_mc=\
+$sched_mc & sched_smt=$sched_smt for workload=$work_load"
+ else
+ RC=1
+ tst_resm TFAIL "cpu consolidation passed for sched_mc=\
+$sched_mc & sched_smt=$sched_smt for workload=$work_load"
+ fi
+ fi
+ ;;
+ *)
+ if [ "$stress" = "thread" ]; then
+ analyze_wrt_wkld $sched_mc $work_load $pass_count $sched_smt $stress
+ else
+ analyze_wrt_wkld $sched_mc $work_load $pass_count $sched_smt
+ fi ;;
+ esac
+ else
+ if [ $pass_count -lt 1 ]; then
+ tst_resm TPASS "cpu consolidation failed for sched_mc=\
+$sched_mc for workload=$work_load"
+ else
+ RC=1
+ tst_resm TFAIL "cpu consolidation passed for sched_mc=\
+$sched_mc & sched_smt=$sched_smt for workload=$work_load"
+ fi
+ fi
+ ;;
+ *)
+ if [ "$stress" = "thread" ]; then
+ analyze_wrt_wkld $sched_mc $work_load $pass_count $sched_smt $stress
+ else
+ analyze_wrt_wkld $sched_mc $work_load $pass_count $sched_smt
+ fi
+ ;;
+ esac
+}
+
+function analyze_consolidation_result() {
+ sched_mc=$1
+ work_load=$2
+ pass_count=$3
+ sched_smt=$4
+ stress=$5
+
+ if [ $hyper_threaded -eq $YES ]; then
+ analyze_result_hyperthreaded $sched_mc $work_load $pass_count $sched_smt $stress
+ else
+ case "$sched_mc" in
+ 0)
+ if [ $pass_count -lt 1 ]; then
+ tst_resm TPASS "cpu consolidation failed for sched_mc=\
+$sched_mc for workload=$work_load"
+ else
+ RC=1
+ tst_resm TFAIL "cpu consolidation passed for sched_mc=\
+$sched_mc for workload=$work_load"
+ fi ;;
+ *)
+ analyze_wrt_wkld $sched_mc $work_load $pass_count
+ ;;
+ esac
+ fi
+}
+
+function analyze_sched_domain_result(){
+ sched_mc=$1
+ result=$2
+ sched_smt=$3
+
+ if [ $hyper_threaded -eq $YES ]; then
+ if [ $sched_smt ]; then
+ if [ "$result" = 0 ];then
+ tst_resm TPASS "sched domain test for sched_mc=$sched_mc & sched_smt=$sched_smt"
+ else
+ RC=1
+ tst_resm TFAIL "sched domain test sched_mc=$sched_mc & sched_smt=$sched_smt"
+ fi
+ else
+ if [ "$result" = 0 ];then
+ tst_resm TPASS "sched domain test for sched_mc=$sched_mc"
+ else
+ RC=1
+ tst_resm TFAIL "sched domain test for sched_mc=$sched_mc"
+ fi
+ fi
+ else
+ if [ "$result" = 0 ];then
+ tst_resm TPASS "sched domain test for sched_mc=$sched_mc"
+ else
+ RC=1
+ tst_resm TFAIL "sched domain test sched_mc=$sched_mc"
+ fi
+ fi
+}
------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
next prev parent reply other threads:[~2009-06-30 14:58 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-30 14:57 [LTP] [Patch 1/10]Patch to integrate kernbench to LTP to test sched_mc=2 Poornima Nayak
2009-06-30 14:57 ` [LTP] [Patch 2/10]Makefile patch to integrate to LTP Poornima Nayak
2009-06-30 16:10 ` Subrata Modak
2009-06-30 14:57 ` [LTP] [Patch 3/10]Readme modified with pre-requisite for sched_mc=2 test Poornima Nayak
2009-06-30 16:10 ` Subrata Modak
2009-06-30 14:57 ` [LTP] [Patch 4/10]Reusable functions for consolidation test modified Poornima Nayak
2009-06-30 14:57 ` [LTP] [Patch 5/10]CPU consolidation testcase updated to handle exceptions Poornima Nayak
2009-06-30 14:57 ` [LTP] [Patch 6/10]sched domian " Poornima Nayak
2009-06-30 14:58 ` [LTP] [Patch 7/10]Fixes for sched_mc & sched_smt interface test Poornima Nayak
2009-06-30 14:58 ` Poornima Nayak [this message]
2009-06-30 14:58 ` [LTP] [Patch 9/10]Master script modified to cover additional test scenarios Poornima Nayak
2009-06-30 14:58 ` [LTP] [Patch 10/10]Patch to add another command file in runtest Poornima Nayak
2009-06-30 16:10 ` Subrata Modak
2009-06-30 16:09 ` [LTP] [Patch 1/10]Patch to integrate kernbench to LTP to test sched_mc=2 Subrata Modak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090630145815.11163.6728.sendpatchset@localhost.localdomain \
--to=mpnayak@linux.vnet.ibm.com \
--cc=ltp-list@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox