public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Poornima Nayak <mpnayak@linux.vnet.ibm.com>
To: vaidy <svaidy@linux.vnet.ibm.com>,
	ltp-list@lists.sourceforge.net, gautham <ego@in.ibm.com>,
	arun@linux.vnet.ibm.com
Subject: [LTP] New & modified reusable functions for new & existing testcases
Date: Thu, 20 Aug 2009 21:37:31 +0530	[thread overview]
Message-ID: <20090820160731.30926.75897.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20090820160655.30926.34854.sendpatchset@localhost.localdomain>

Implemented reusable functions to learn system architecture before executing 
architecture specific testcases.  

Signed-off-by: poornima nayak <mpnayak@linux.vnet.ibm.com>

diff -uprN ltp-full-20090731_orig/testcases/kernel/power_management/pm_include.sh ltp-full-20090731/testcases/kernel/power_management/pm_include.sh
--- ltp-full-20090731_orig/testcases/kernel/power_management/pm_include.sh	2009-08-20 19:59:11.000000000 +0530
+++ ltp-full-20090731/testcases/kernel/power_management/pm_include.sh	2009-08-20 20:29:21.000000000 +0530
@@ -112,6 +112,46 @@ function is_multi_socket() {
 	fi
 }
 
+function is_multi_core() {
+	siblings=`cat /proc/cpuinfo | grep siblings | uniq | cut -f2 -d':'`
+	cpu_cores=`cat /proc/cpuinfo | grep "cpu cores" | uniq | cut -f2 -d':'`
+	echo "siblings count $siblings cores count $cpu_cores"
+	if [ $siblings -eq $cpu_cores ]; then
+		if [ $cpu_cores -gt 1 ]; then
+			return 0
+		else
+			return 1
+		fi
+	else
+		: $(( num_of_cpus = siblings / cpu_cores ))
+		if [ $num_of_cpus -gt 1 ]; then
+			return 0
+		else
+			return 1
+		fi
+	fi
+}		
+
+function is_dual_core() {
+	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
+                if [ $cpu_cores -eq 2 ]; then
+                        return 1
+                else
+                        return 0
+                fi
+        else
+                : $(( num_of_cpus = siblings / cpu_cores ))
+                if [ $num_of_cpus -eq 2 ]; then
+                        echo "number of cpus $num_of_cpus"
+                        return 1
+                else
+                        return 0
+                fi
+        fi
+}
+
 function get_kernel_version() {
 	# Get kernel minor version
 	export kernel_version=`uname -r | awk -F. '{print $1"."$2"."$3}' | cut -f1 -d'-'`
@@ -120,42 +160,12 @@ function get_kernel_version() {
 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" ;;
+	'2.6.26' | '2.6.27' | '2.6.28')
+			export valid_input="0 1" ;;
+		*) export valid_input="0 1 2" ;;
 	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
@@ -184,58 +194,33 @@ function analyze_wrt_workload_hyperthrea
     work_load=$2
     pass_count=$3
     sched_smt=$4
-    stress=$5
 
-	if [ $sched_mc > $sched_smt ]; then
+	if [ $sched_mc -gt $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 \
+	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 \
+		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 \
+		fi ;;
+	1)
+		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 \
+		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 ;;
+		fi ;;
         esac
-	fi
 }
 
 function analyze_wrt_wkld() {
@@ -243,12 +228,11 @@ function analyze_wrt_wkld() {
     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
+		 $sched_smt 
 	else
 		case "$valid_workload" in
 		0)
@@ -278,74 +262,56 @@ function analyze_result_hyperthreaded() 
     work_load=$2
     pass_count=$3
     sched_smt=$4
-    stress=$5
 
+	echo "sched_mc =$sched_mc  work-load=$work_load  pass_count=$pass_count  sched_smt=$sched_smt"
 	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=\
+				if [ "$pass_count" -lt 5 ]; then
+					tst_resm TPASS "cpu consolidation failed 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=\
+					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 ;;
+				analyze_wrt_wkld $sched_mc $work_load $pass_count $sched_smt
+				;;
 			esac
 		else
-			if [ $pass_count -lt 1 ]; then
+			if [ $pass_count -lt 5 ]; 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"
+$sched_mc 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() {
+function analyze_package_consolidation_result() {
 	sched_mc=$1
     work_load=$2
     pass_count=$3
 	sched_smt=$4
-	stress=$5
 
+	echo "sched mc $sched_mc sched smt is $sched_smt workload $work_load pass count $pass_count"
 	if [ $hyper_threaded -eq $YES ]; then
-		analyze_result_hyperthreaded $sched_mc $work_load $pass_count $sched_smt $stress
+		analyze_result_hyperthreaded $sched_mc $work_load $pass_count $sched_smt
 	else
 		case "$sched_mc" in
 	    0)
-    	    if [ $pass_count -lt 1 ]; then
+    	    if [ $pass_count -lt 5 ]; then
         	    tst_resm TPASS "cpu consolidation failed for sched_mc=\
 $sched_mc for workload=$work_load"
         	else
@@ -360,6 +326,33 @@ $sched_mc for workload=$work_load"
 	fi
 }
 
+function analyze_core_consolidation_result() {
+	sched_smt=$1
+	work_load=$2
+	pass_count=$3
+
+	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
+}
+
 function analyze_sched_domain_result(){
 	sched_mc=$1
 	result=$2

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

  parent reply	other threads:[~2009-08-20 16:08 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-20 16:06 [LTP] Patch to fix kernbench integration issue Poornima Nayak
2009-08-20 16:07 ` [LTP] Patch to fix make install issue in ebizzy Poornima Nayak
2009-08-20 16:52   ` Garrett Cooper
2009-08-23  7:29     ` Subrata Modak
2009-08-20 16:07 ` [LTP] Patch to include workload for consolidation verification Poornima Nayak
2009-08-23  7:29   ` Subrata Modak
2009-08-20 16:07 ` [LTP] Patch to get max sched mc & smt values based on kernel version Poornima Nayak
2009-08-23  7:29   ` Subrata Modak
2009-08-20 16:07 ` Poornima Nayak [this message]
2009-08-20 16:51   ` [LTP] New & modified reusable functions for new & existing testcases Garrett Cooper
2009-08-23  7:29     ` Subrata Modak
2009-08-20 16:07 ` [LTP] Patch for PM makefile for new testcases & fix test_sched_smt integration issue Poornima Nayak
2009-08-20 17:01   ` Garrett Cooper
2009-08-23  7:28     ` Subrata Modak
2009-08-20 16:07 ` [LTP] Patch for PM Master script to integrate new testcases Poornima Nayak
2009-08-23  7:29   ` Subrata Modak
2009-08-20 16:08 ` [LTP] Patch to fix cpu consolidation failure for kernbench on HT system Poornima Nayak
2009-08-20 17:00   ` Garrett Cooper
2009-08-23  7:28   ` Subrata Modak
2009-08-20 16:08 ` [LTP] New testcase to test timer_migration interface Poornima Nayak
2009-08-20 16:57   ` Garrett Cooper
2009-08-20 16:57     ` Garrett Cooper
2009-08-23  7:29     ` Subrata Modak
2009-08-20 16:53 ` [LTP] Patch to fix kernbench integration issue Garrett Cooper
2009-08-23  7:29   ` 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=20090820160731.30926.75897.sendpatchset@localhost.localdomain \
    --to=mpnayak@linux.vnet.ibm.com \
    --cc=arun@linux.vnet.ibm.com \
    --cc=ego@in.ibm.com \
    --cc=ltp-list@lists.sourceforge.net \
    --cc=svaidy@linux.vnet.ibm.com \
    /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