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