All of lore.kernel.org
 help / color / mirror / Atom feed
From: Poornima Nayak <mpnayak@linux.vnet.ibm.com>
To: ltp-list@lists.sourceforge.net
Subject: [LTP] [Patch 9/10]Master script modified to cover additional test scenarios
Date: Tue, 30 Jun 2009 20:28:24 +0530	[thread overview]
Message-ID: <20090630145824.11163.54300.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20090630145706.11163.54040.sendpatchset@localhost.localdomain>

[Patch 9/10]Master script modified to cover additional test scenarios

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

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-06-30 15:04:19.000000000 +0530
+++ ltp_patched/testcases/kernel/power_management/runpwtests.sh	2009-06-30 16:15:18.000000000 +0530
@@ -30,15 +30,18 @@
 #
 
 # Exporting Required variables
-
+echo Are we really executing this ?
 export TST_TOTAL=1
-LTPTMP=${TMP}
+#LTPTMP=${TMP}
 export PATH=${PATH}:.
-export TCID="Power Management"
+export TCID="Power_Management"
 export TST_COUNT=0
+export contacts="mpnayak@linux.vnet.ibm.com"
+export analysis="/proctstat"
 
+YES=0
 #List of reusable functions defined in pm_include.sh
-. pm_include.sh
+. ./pm_include.sh
 
 # Function:     main
 #
@@ -50,158 +53,172 @@ export TST_COUNT=0
 RC=0		#Return status
 
 # Checking required kernel version and architecture
-check_kv_arch; RC=$?
+check_kv_arch
+RC=$?
 if [ $RC -eq 1 ] ; then
-	tst_resm TCONF "Kernel version or Architecture not supported:\
-Not running testcases"
+	tst_resm TCONF "Kernel version or Architecture not supported: Not running testcases"
 	exit 0
 fi
 
-# Checking sched_mc sysfs interface
+is_hyper_threaded; hyper_threaded=$?
+
+#Checking sched_mc sysfs interface
 #check_config.sh config_sched_mc || RC=$?
+TST_COUNT=1
 if [ -f /sys/devices/system/cpu/sched_mc_power_savings ] ; then
 	if test_sched_mc.sh ; then
-		tst_resm TPASS "SCHED_MC sysfs tests passed"
+		tst_resm TPASS "SCHED_MC sysfs tests"
 	else
 		RC=$?
-		tst_resm TFAIL "SCHED_MC sysfs tests failed"
+		tst_resm TFAIL "SCHED_MC sysfs tests"
 	fi
-	# 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"
-	else
-		# Test CPU consolidation on hyper-threaded system
-		hyper_threaded=$(is_hyper_threaded)
-		if [ $hyper_threaded -eq 1 ]; then
-			for sched_mc in `seq 0 2`; do
-				for sched_smt in `seq 0 1`; do
-					if [ $sched_smt -eq 0 -a $sched_mc -eq 0 ]; then 
-						continue
-					fi
-					if cpu_consolidation.py -c $sched_mc -t $sched_smt ; then
-						tst_resm TPASS "cpu consolidation sched_mc=$sched_mc,\
- sched_smt=$sched_smt"
-					else
-						RC=$?
-						tst_resm TFAIL "cpu consolidation \
- sched_mc=$sched_mc, sched_smt=$sched_smt"
-					fi
-				done
-			done
-		else
-			# Test CPU consolidation for sched_mc=1 & 2
-			for sched_mc in `seq 1 2`; do
-				if cpu_consolidation.py -c $sched_mc ; then
-					tst_resm TPASS "cpu consolidation test for \
-sched_mc_power set to $sched_mc"
-				else
-					RC=$?
-					tst_resm TFAIL "cpu consolidation test\
- sched_mc_power set to $sched_mc"
-				fi
-			done
-		fi
+else
+    tst_resm TCONF "Required kernel configuration for SCHED_MC NOT set"
+fi
 
-		# Testcase to validate sched_domain tree
-		if [ $hyper_threaded -eq 1 ]; then
-			for sched_mc in `seq 0 2`; do
-                for sched_smt in `seq 0 1`; do
-					if [ $sched_smt -eq 0 -a $sched_mc -eq 0 ]; then
-                        continue
-                    fi
-
-					if sched_domain.py -c $sched_mc -t $sched_smt; then
-						tst_resm TPASS "sched domain test sched_mc=$sched_mc,\
-sched_smt=$sched_smt "
-					else
-						RC=$?
-						tst_resm TFAIL "sched domain test sched_mc=$sched_mc,\
-sched_smt=$sched_smt "
-					fi
-				done
-			done
-		else
-			# Validate CPU level sched domain topology validation
-			for sched_mc in `seq 1 2`; do
-				if sched_domain.py -c $sched_mc ; then
-					tst_resm TPASS "sched domain test for sched_mc=$sched_mc "
-				else
-					RC=$?
-					tst_resm TFAIL "sched domain test for sched_mc=$sched_mc "
-				fi
-			done
-			
-		fi
-	fi
+# Test sched_smt_power_savings interface on HT machines
+((TST_COUNT= $TST_COUNT + 1))
+if [ -f /sys/devices/system/cpu/sched_smt_power_savings ] ; then
+    if test_sched_smt.sh; then
+		tst_resm TPASS "SCHED_SMT sysfs test"
+	else
+		RC=$?
+        tst_resm TFAIL "SCHED_SMT sysfs test"
+    fi
 else
-	tst_resm TCONF "Required kernel configuration for SCHED_MC NOT set"
+    if [ $hyper_threaded -eq $YES ]; then
+		RC=$?
+        tst_resm TFAIL "Required kernel configuration for SCHED_SMT NOT set"
+    else
+        tst_resm TCONF "Required Hyper Threading support for SCHED_SMT test"
+    fi
 fi
+
 # Checking cpufreq sysfs interface files
 #check_config.sh config_cpu_freq || RC=$?
+((TST_COUNT= $TST_COUNT + 1))
 if [ -d /sys/devices/system/cpu/cpu0/cpufreq ] ; then
-	if check_cpufreq_sysfs_files.sh ; then
-		tst_resm TPASS "CPUFREQ sysfs tests "
+    if check_cpufreq_sysfs_files.sh; then
+		tst_resm TPASS "CPUFREQ sysfs tests"
 	else
 		RC=$?
 		tst_resm TFAIL "CPUFREQ sysfs tests "
 	fi
 
-	# Changing governors
-	if change_govr.sh ; then
+    # Changing governors
+	((TST_COUNT= $TST_COUNT + 1))
+	if change_govr.sh; then
 		tst_resm TPASS "Changing governors "
 	else
 		RC=$?
 		tst_resm TFAIL "Changing governors "
 	fi
 
-	# Changing frequencies
-	if change_freq.sh ; then
+    # Changing frequencies
+	((TST_COUNT= $TST_COUNT + 1))
+    if change_freq.sh ; then
 		tst_resm TPASS "Changing frequncies "
 	else
 		RC=$?
-		tst_resm TFAIL "Changing frequncies "
-	fi
+        tst_resm TFAIL "Changing frequncies "
+    fi
 
-	# Loading and Unloading governor related kernel modules
-	if pwkm_load_unload.sh ; then
+    # Loading and Unloading governor related kernel modules
+	((TST_COUNT= $TST_COUNT + 1))
+    if pwkm_load_unload.sh ; then
 		tst_resm TPASS "Loading and Unloading of governor kernel \
-		modules got failed"
+modules"
 	else
 		RC=$?
-		tst_resm TFAIL "Loading and Unloading of governor kernel \
-		modules got failed"
-	fi
+        tst_resm TFAIL "Loading and Unloading of governor kernel \
+        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
+(( TST_COUNT= $TST_COUNT +1))
 if check_cpuidle_sysfs_files.sh ; then
-	tst_resm TPASS "CPUIDLE sysfs tests failed"
+	tst_resm TPASS "CPUIDLE sysfs tests passed"
 else
 	RC=$?
-	tst_resm TFAIL "CPUIDLE sysfs tests failed"
+    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
-	if test_sched_smt.sh ; then
-		tst_resm TPASS "SCHED_MC sysfs tests failed"
-	else
-		RC=$?
-		tst_resm TFAIL "SCHED_MC sysfs tests failed"
-	fi
+# sched_domain test
+which python > /dev/null
+if [ $? -ne 0 ] ; then
+	tst_resm TCONF "Python is not installed, CPU Consoldation\
+test cannot run"
 else
-	hyper_threaded=$(is_hyper_threaded)
-	if [ $hyper_threaded -eq 1 ]; then
-		tst_resm TFAIL "Required kernel configuration for SCHED_SMT NOT set"
-		RC=1
+	get_max_sched_mc; max_sched_mc=$?
+	for sched_mc in `seq 0 $max_sched_mc`; do
+		(( TST_COUNT= $TST_COUNT +1))
+		sched_domain.py -c $sched_mc; RC=$?
+		analyze_sched_domain_result $sched_mc $RC 
+		if [ $hyper_threaded -eq $YES ]; then
+			get_max_sched_smt ; max_sched_smt=$?
+			for sched_smt in `seq 0 $max_sched_smt`; do
+				# Testcase to validate sched_domain tree
+				(( TST_COUNT= $TST_COUNT +1))
+				sched_domain.py -c $sched_mc -t $sched_smt; RC=$?
+				analyze_sched_domain_result $sched_mc $RC $sched_smt ;
+			done
+		fi
+	done
+fi
+if [ $# -gt 0 -a $1 == "-exclusive" ]; then 
+	# Test CPU consolidation 
+	which python > /dev/null
+	if [ $? -ne 0 ] ; then
+		tst_resm TCONF "Python is not installed, CPU Consoldation\
+ test not run"
 	else
-		tst_resm TCONF "Required Hyper Threading support in the\
-system under test"
+		sched_mc_smt_pass_cnt=0
+		work_loads_list="ebizzy kernbench"
+		for sched_mc in `seq 0 $max_sched_mc`; do
+			for work_load in ${work_loads_list}
+            do
+				((TST_COUNT= $TST_COUNT + 1))
+				sched_mc_pass_cnt=0
+				for repeat_test in `seq 1  10`; do
+					 #Testcase to validate CPU consolidation for sched_mc
+					if cpu_consolidation.py -c $sched_mc -w $work_load ; then
+						((sched_mc_pass_cnt= $sched_mc_pass_cnt +1))
+					fi
+				done
+				analyze_consolidation_result $sched_mc $work_load $sched_mc_pass_cnt	
+			done	
+			if [ $hyper_threaded -eq $YES ]; then
+				for sched_smt in `seq 0 $max_sched_smt`; do
+					for work_load in ${work_loads_list}; do
+                    	((TST_COUNT= $TST_COUNT + 1))
+						sched_mc_smt_pass_cnt=0
+						for repeat_test in `seq 1  10`; do
+							# Testcase to validate CPU consolidation for
+							# for sched_mc & sched_smt with stress=50%
+							if cpu_consolidation.py -c $sched_mc -t $sched_smt -w $work_load; then
+								((sched_mc_smt_pass_cnt= $sched_mc_smt_pass_cnt +1))
+							fi
+						done
+						analyze_consolidation_result $sched_mc $work_load $sched_mc_smt_pass_cnt $sched_smt
+
+						#Testcase to validate consolidation at core level
+						sched_mc_smt_pass_cnt=0
+						stress="thread"
+						((TST_COUNT= $TST_COUNT + 1))
+						for repeat_test in `seq 1  10`; do
+							if cpu_consolidation.py -c $sched_mc -t $sched_smt -w $work_load -s $stress; then
+								((sched_mc_smt_pass_cnt= $sched_mc_smt_pass_cnt +1))
+							fi
+						done
+						analyze_consolidation_result $sched_mc $work_load $sched_mc_smt_pass_cnt $sched_smt $stress
+					done
+				done
+			fi
+		done
 	fi
 fi
 
-exit $RC
\ No newline at end of file
+exit $RC

------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

  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 ` [LTP] [Patch 8/10]New set of reusbale Library functions and fixes Poornima Nayak
2009-06-30 14:58 ` Poornima Nayak [this message]
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=20090630145824.11163.54300.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 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.