Home | History | Annotate | Download | only in controllers
      1 #!/bin/bash
      2 #usage ./test_controllers.sh
      3 ##################################################################################
      4 #  Copyright (c) International Business Machines  Corp., 2007                    #
      5 #                                                                                #
      6 #  This program is free software;  you can redistribute it and/or modify         #
      7 #  it under the terms of the GNU General Public License as published by          #
      8 #  the Free Software Foundation; either version 2 of the License, or             #
      9 #  (at your option) any later version.                                           #
     10 #                                                                                #
     11 #  This program is distributed in the hope that it will be useful,               #
     12 #  but WITHOUT ANY WARRANTY;  without even the implied warranty of               #
     13 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See                     #
     14 #  the GNU General Public License for more details.                              #
     15 #                                                                                #
     16 #  You should have received a copy of the GNU General Public License             #
     17 #  along with this program;  if not, write to the Free Software                  #
     18 #  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA       #
     19 #                                                                                #
     20 ##################################################################################
     21 # Name Of File: test_controllers.sh                                              #
     22 #                                                                                #
     23 # Description:                                                                   #
     24 #               This file runs the tests for resource management ie to test cpu  #
     25 #               controller and memory controller. (for now cpu controller only)  #
     26 #                                                                                #
     27 # Author:       Sudhir Kumar    <sudhirkumarmalik (at] In.ibm.com>                    #
     28 #                                                                                #
     29 # History:                                                                       #
     30 #                                                                                #
     31 #  DATE        NAME            EMAIL                         DESC                #
     32 #                                                                                #
     33 #  20/12/07  Sudhir Kumar <sudhirkumarmalik (at] in.ibm.com>   Created this test      #
     34 #  02/03/09  Miao Xie     <miaox (at] cn.fujitsu.com>          Add cpuset testset     #
     35 #  07/07/09  Shi Weihua   <shiwh (at] cn.fujitsu.com>      Add cpu testset of Fujitsu #
     36 #  30/12/09  Rishikesh    <risrajak (at] linux.vnet.ibm.com> Added enable/disable     #
     37 #                                                                                #
     38 ##################################################################################
     39 
     40 if [ -f /proc/cgroups ]
     41 then
     42 	CPU_CONTROLLER=`grep -w cpu /proc/cgroups | cut -f1`;
     43 	CPU_CONTROLLER_VALUE=`grep -w cpu /proc/cgroups | cut -f4`;
     44 	MEM_CONTROLLER=`grep -w memory /proc/cgroups | cut -f1`;
     45 	MEM_CONTROLLER_VALUE=`grep -w memory /proc/cgroups | cut -f4`;
     46 	IOTHROTTLE_CONTROLLER=`grep -w blockio /proc/cgroups | cut -f1`;
     47 	IOTHROTTLE_CONTROLLER_VALUE=`grep -w blockio /proc/cgroups | cut -f4`;
     48 	FREEZER=`grep -w freezer /proc/cgroups | cut -f1`;
     49 	FREEZER_VALUE=`grep -w freezer /proc/cgroups | cut -f4`;
     50 	CPUACCOUNT_CONTROLLER=`grep -w cpuacct /proc/cgroups | cut -f1`
     51 	CPUACCOUNT_CONTROLLER_VALUE=`grep -w cpuacct /proc/cgroups | cut -f4`
     52 
     53 	if [ "$CPU_CONTROLLER" = "cpu" ] && [ "$CPU_CONTROLLER_VALUE" = "1" ]
     54 	then
     55 		$LTPROOT/testcases/bin/run_cpuctl_test.sh 1;
     56 		$LTPROOT/testcases/bin/run_cpuctl_test.sh 3;
     57 		$LTPROOT/testcases/bin/run_cpuctl_test.sh 4;
     58 		$LTPROOT/testcases/bin/run_cpuctl_test.sh 5;
     59 		$LTPROOT/testcases/bin/run_cpuctl_stress_test.sh 6;
     60 		$LTPROOT/testcases/bin/run_cpuctl_stress_test.sh 7;
     61 		$LTPROOT/testcases/bin/run_cpuctl_stress_test.sh 8;
     62 		$LTPROOT/testcases/bin/run_cpuctl_stress_test.sh 9;
     63 		$LTPROOT/testcases/bin/run_cpuctl_stress_test.sh 10;
     64 		# Add the latency testcase to be run
     65 		$LTPROOT/testcases/bin/run_cpuctl_latency_test.sh 1;
     66 		$LTPROOT/testcases/bin/run_cpuctl_latency_test.sh 2;
     67 		# Add the testcases from Fujitsu
     68 		$LTPROOT/testcases/bin/run_cpuctl_test_fj.sh
     69 	else
     70 		echo "CONTROLLERS TESTCASES: WARNING";
     71 		echo "Either Kernel does not support for cpu controller or functionality is not enabled";
     72 		echo "Skipping all cpu controller testcases....";
     73 	fi;
     74 
     75 	if [ "$MEM_CONTROLLER" = "memory" ] && [ "$MEM_CONTROLLER_VALUE" = "1" ]
     76 	then
     77 		$LTPROOT/testcases/bin/run_memctl_test.sh 1;
     78 		$LTPROOT/testcases/bin/run_memctl_test.sh 2;
     79 	else
     80 		echo "CONTROLLERS TESTCASES: WARNING";
     81 		echo "Either Kernel does not support for memory controller or functionality is not enabled";
     82 		echo "Skipping all memory controller testcases....";
     83 	fi
     84 
     85 	if [ "$IOTHROTTLE_CONTROLLER" = "blockio" ] && [ "$IOTHROTTLE_CONTROLLER_VALUE" = "1" ]
     86 	then
     87 		$LTPROOT/testcases/bin/run_io_throttle_test.sh;
     88 	else
     89 		echo "CONTROLLERS TESTCASES: WARNING";
     90 		echo "Either Kernel does not support for io controller or functionality is not enabled";
     91 		echo "Skipping all block device I/O throttling testcases....";
     92 	fi
     93 
     94 	if [ "$FREEZER" = "freezer" ] && [ "$FREEZER_VALUE" = "1" ]
     95 	then
     96 		"$LTPROOT/testcases/bin/run_freezer.sh"
     97 	else
     98 		echo "CONTROLLERS TESTCASES: WARNING";
     99 		echo "Either Kernel does not support for freezer or functionality is not enabled";
    100 		echo "Kernel does not support freezer controller";
    101 		echo "Skipping all freezer testcases....";
    102 	fi
    103 	if [ "$CPUACCOUNT_CONTROLLER" = "cpuacct" ] && [ "$CPUACCOUNT_CONTROLLER_VALUE" = "1" ]
    104         then
    105                 $LTPROOT/testcases/bin/run_cpuacct_test.sh 1;
    106                 $LTPROOT/testcases/bin/run_cpuacct_test.sh 2;
    107         else
    108                 echo "Could not start cpu accounting controller test";
    109 		echo "Either Kernel does not support for cpu accounting controller or functionality is not enabled";
    110                 echo "usage: run_cpuacct_test.sh $TEST_NUM ";
    111                 echo "Skipping the cpu accounting controller test...";
    112         fi
    113 else
    114 	echo "CONTROLLERS TESTCASES: WARNING"
    115 	echo "Kernel does not support any controller";
    116 	echo "Skipping all controllers testcases....";
    117 fi
    118 
    119 exit 0;
    120