All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.