| #!/bin/bash |
| #usage ./test_controllers.sh |
| ################################################################################## |
| # Copyright (c) International Business Machines Corp., 2007 # |
| # # |
| # This program is free software; you can redistribute it and/or modify # |
| # it under the terms of the GNU General Public License as published by # |
| # the Free Software Foundation; either version 2 of the License, or # |
| # (at your option) any later version. # |
| # # |
| # This program is distributed in the hope that it will be useful, # |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of # |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See # |
| # the GNU General Public License for more details. # |
| # # |
| # You should have received a copy of the GNU General Public License # |
| # along with this program; if not, write to the Free Software # |
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # |
| # # |
| ################################################################################## |
| # Name Of File: test_controllers.sh # |
| # # |
| # Description: # |
| # This file runs the tests for resource management ie to test cpu # |
| # controller and memory controller. (for now cpu controller only) # |
| # # |
| # Author: Sudhir Kumar <sudhirkumarmalik@In.ibm.com> # |
| # # |
| # History: # |
| # # |
| # DATE NAME EMAIL DESC # |
| # # |
| # 20/12/07 Sudhir Kumar <sudhirkumarmalik@in.ibm.com> Created this test # |
| # 02/03/09 Miao Xie <miaox@cn.fujitsu.com> Add cpuset testset # |
| # 07/07/09 Shi Weihua <shiwh@cn.fujitsu.com> Add cpu testset of Fujitsu # |
| # 30/12/09 Rishikesh <risrajak@linux.vnet.ibm.com> Added enable/disable # |
| # # |
| ################################################################################## |
| |
| if [ -f /proc/cgroups ] |
| then |
| CPU_CONTROLLER=`grep -w cpu /proc/cgroups | cut -f1`; |
| CPU_CONTROLLER_VALUE=`grep -w cpu /proc/cgroups | cut -f4`; |
| MEM_CONTROLLER=`grep -w memory /proc/cgroups | cut -f1`; |
| MEM_CONTROLLER_VALUE=`grep -w memory /proc/cgroups | cut -f4`; |
| IOTHROTTLE_CONTROLLER=`grep -w blockio /proc/cgroups | cut -f1`; |
| IOTHROTTLE_CONTROLLER_VALUE=`grep -w blockio /proc/cgroups | cut -f4`; |
| FREEZER=`grep -w freezer /proc/cgroups | cut -f1`; |
| FREEZER_VALUE=`grep -w freezer /proc/cgroups | cut -f4`; |
| CPUACCOUNT_CONTROLLER=`grep -w cpuacct /proc/cgroups | cut -f1` |
| CPUACCOUNT_CONTROLLER_VALUE=`grep -w cpuacct /proc/cgroups | cut -f4` |
| |
| if [ "$CPU_CONTROLLER" = "cpu" ] && [ "$CPU_CONTROLLER_VALUE" = "1" ] |
| then |
| $LTPROOT/testcases/bin/run_cpuctl_test.sh 1; |
| $LTPROOT/testcases/bin/run_cpuctl_test.sh 3; |
| $LTPROOT/testcases/bin/run_cpuctl_test.sh 4; |
| $LTPROOT/testcases/bin/run_cpuctl_test.sh 5; |
| $LTPROOT/testcases/bin/run_cpuctl_stress_test.sh 6; |
| $LTPROOT/testcases/bin/run_cpuctl_stress_test.sh 7; |
| $LTPROOT/testcases/bin/run_cpuctl_stress_test.sh 8; |
| $LTPROOT/testcases/bin/run_cpuctl_stress_test.sh 9; |
| $LTPROOT/testcases/bin/run_cpuctl_stress_test.sh 10; |
| # Add the latency testcase to be run |
| $LTPROOT/testcases/bin/run_cpuctl_latency_test.sh 1; |
| $LTPROOT/testcases/bin/run_cpuctl_latency_test.sh 2; |
| # Add the testcases from Fujitsu |
| $LTPROOT/testcases/bin/run_cpuctl_test_fj.sh |
| else |
| echo "CONTROLLERS TESTCASES: WARNING"; |
| echo "Either Kernel does not support for cpu controller or functionality is not enabled"; |
| echo "Skipping all cpu controller testcases...."; |
| fi; |
| |
| if [ "$MEM_CONTROLLER" = "memory" ] && [ "$MEM_CONTROLLER_VALUE" = "1" ] |
| then |
| $LTPROOT/testcases/bin/run_memctl_test.sh 1; |
| $LTPROOT/testcases/bin/run_memctl_test.sh 2; |
| else |
| echo "CONTROLLERS TESTCASES: WARNING"; |
| echo "Either Kernel does not support for memory controller or functionality is not enabled"; |
| echo "Skipping all memory controller testcases...."; |
| fi |
| |
| if [ "$IOTHROTTLE_CONTROLLER" = "blockio" ] && [ "$IOTHROTTLE_CONTROLLER_VALUE" = "1" ] |
| then |
| $LTPROOT/testcases/bin/run_io_throttle_test.sh; |
| else |
| echo "CONTROLLERS TESTCASES: WARNING"; |
| echo "Either Kernel does not support for io controller or functionality is not enabled"; |
| echo "Skipping all block device I/O throttling testcases...."; |
| fi |
| |
| if [ "$FREEZER" = "freezer" ] && [ "$FREEZER_VALUE" = "1" ] |
| then |
| "$LTPROOT/testcases/bin/run_freezer.sh" |
| else |
| echo "CONTROLLERS TESTCASES: WARNING"; |
| echo "Either Kernel does not support for freezer or functionality is not enabled"; |
| echo "Kernel does not support freezer controller"; |
| echo "Skipping all freezer testcases...."; |
| fi |
| if [ "$CPUACCOUNT_CONTROLLER" = "cpuacct" ] && [ "$CPUACCOUNT_CONTROLLER_VALUE" = "1" ] |
| then |
| $LTPROOT/testcases/bin/run_cpuacct_test.sh 1; |
| $LTPROOT/testcases/bin/run_cpuacct_test.sh 2; |
| else |
| echo "Could not start cpu accounting controller test"; |
| echo "Either Kernel does not support for cpu accounting controller or functionality is not enabled"; |
| echo "usage: run_cpuacct_test.sh $TEST_NUM "; |
| echo "Skipping the cpu accounting controller test..."; |
| fi |
| else |
| echo "CONTROLLERS TESTCASES: WARNING" |
| echo "Kernel does not support any controller"; |
| echo "Skipping all controllers testcases...."; |
| fi |
| |
| exit 0; |