From: Subrata M. <su...@li...> - 2008-04-29 09:15:27
|
On Tue, 2008-04-29 at 02:16 +0530, Sudhir Kumar wrote: > Hi Subrata, > > I am sending the cleanup patch for cpu controller after getting > review comments from developers. > Still need to do minor things which I will do in a new patch. Thanks once again Sudhir for cleaning up the CPUCTL test cases. Can Dhaval or somebody give me a Ack for this too ;-) ? Regards-- Subrata > > > Signed-off-by: Sudhir Kumar <sk...@li...> > > Index: ltp-full-20080229/testcases/kernel/controllers/cpuctl/cpuctl_test01.c > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/cpuctl/cpuctl_test01.c > +++ ltp-full-20080229/testcases/kernel/controllers/cpuctl/cpuctl_test01.c > @@ -38,10 +38,10 @@ > /* Test Assertion */ > /* Please refer to the file cpuctl_testplan.txt */ > /* */ > -/* Author: Sudhir Kumar sud...@in... */ > +/* Author: Sudhir Kumar sk...@li... */ > /* */ > /* History: */ > -/* Created- 20/12/2007 -Sudhir Kumar sud...@in... */ > +/* Created- 20/12/2007 -Sudhir Kumar <sk...@li...> */ > /* */ > /******************************************************************************/ > > @@ -83,7 +83,7 @@ int timer_expired = 0; > int main(int argc, char* argv[]) > { > > - int num_cpus, test_num, len; /* num_cpus to calculate cpu time in %*/ > + int num_cpus, test_num, len; /* Total time = TIME_INTERVAL *num_cpus in the machine */ > char mygroup[32], mytaskfile[32], mysharesfile[32], ch; > pid_t pid; > int my_group_num, /* A number attached with a group*/ > Index: ltp-full-20080229/testcases/kernel/controllers/cpuctl/cpuctl_test02.c > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/cpuctl/cpuctl_test02.c > +++ ltp-full-20080229/testcases/kernel/controllers/cpuctl/cpuctl_test02.c > @@ -37,10 +37,10 @@ > /* Test Assertion */ > /* Please refer to the file cpuctl_testplan.txt */ > /* */ > -/* Author: Sudhir Kumar sud...@in... */ > +/* Author: Sudhir Kumar sk...@li... */ > /* */ > /* History: */ > -/* Created- 20/12/2007 -Sudhir Kumar sud...@in... */ > +/* Created- 20/12/2007 -Sudhir Kumar <sk...@li...> */ > /* */ > /******************************************************************************/ > > @@ -83,7 +83,7 @@ int timer_expired = 0; > int main(int argc, char* argv[]) > { > > - int test_num, task_num, len, num_cpus; /* num_cpus to calculate cpu time in %*/ > + int test_num, task_num, len, num_cpus; /* Total time = TIME_INTERVAL *num_cpus in the machine */ > int migrate=0; /* For task migration*/ > char mygroup[32], mytaskfile[32], mysharesfile[32], ch; > /* Following variables are to capture parameters from script*/ > Index: ltp-full-20080229/testcases/kernel/controllers/cpuctl/cpuctl_test03.c > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/cpuctl/cpuctl_test03.c > +++ ltp-full-20080229/testcases/kernel/controllers/cpuctl/cpuctl_test03.c > @@ -38,10 +38,10 @@ > /* Test Assertion */ > /* Please refer to the file cpuctl_testplan.txt */ > /* */ > -/* Author: Sudhir Kumar sud...@in... */ > +/* Author: Sudhir Kumar sk...@li... */ > /* */ > /* History: */ > -/* Created- 20/12/2007 -Sudhir Kumar sud...@in... */ > +/* Created- 20/12/2007 -Sudhir Kumar <sk...@li...> */ > /* */ > /******************************************************************************/ > > @@ -82,7 +82,7 @@ int timer_expired = 0; > int main(int argc, char* argv[]) > { > > - int test_num, task_num, len, num_cpus; /* num_cpus to calculate cpu time in %*/ > + int test_num, task_num, len, num_cpus; /* Total time = TIME_INTERVAL *num_cpus in the machine */ > char mygroup[32], mytaskfile[32], mysharesfile[32], ch; > /* Following variables are to capture parameters from script*/ > char *group_num_p, *mygroup_p, *script_pid_p, *num_cpus_p, *test_num_p, *task_num_p; > Index: ltp-full-20080229/testcases/kernel/controllers/cpuctl/cpuctl_test04.c > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/cpuctl/cpuctl_test04.c > +++ ltp-full-20080229/testcases/kernel/controllers/cpuctl/cpuctl_test04.c > @@ -37,10 +37,10 @@ > /* Test Assertion */ > /* Please refer to the file cpuctl_testplan.txt */ > /* */ > -/* Author: Sudhir Kumar sud...@in... */ > +/* Author: Sudhir Kumar sk...@li... */ > /* */ > /* History: */ > -/* Created- 20/12/2007 -Sudhir Kumar sud...@in... */ > +/* Created- 20/12/2007 -Sudhir Kumar <sk...@li...> */ > /* */ > /******************************************************************************/ > > @@ -82,7 +82,7 @@ int timer_expired = 0; > int main(int argc, char* argv[]) > { > > - int test_num, task_num, len, num_cpus; /* num_cpus to calculate cpu time in %*/ > + int test_num, task_num, len, num_cpus; /* Total time = TIME_INTERVAL *num_cpus in the machine */ > char mygroup[64], mytaskfile[64], mysharesfile[64], ch; > /* Following variables are to capture parameters from script*/ > char *group_num_p, *mygroup_p, *script_pid_p, *num_cpus_p, *test_num_p, *task_num_p; > Index: ltp-full-20080229/testcases/kernel/controllers/cpuctl/cpuctl_testplan.txt > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/cpuctl/cpuctl_testplan.txt > +++ ltp-full-20080229/testcases/kernel/controllers/cpuctl/cpuctl_testplan.txt > @@ -42,14 +42,30 @@ fairness(as we will run 1 task per group > default each group is assigned 1024 shares. The cpu controller schedules the > tasks in different groups on the basis of the shares assigned to that group. > So the cpu usage of a task depends on the amount of shares it's group has out > -of the total number of shares(no upper limiit but a lower limit of 2). Let us > -say that we have 3 groups(1 task each) A,B,C each having 2, 4, 6 shares > +of the total number of shares(no upper limiit but a lower limit of 2) and the > +number of tasks in that group(in this case only 1). > +So untill and unless this ratio(group A' shares/ Total shares of all groups) > +changes, the cpu time for this group A remains constant. > + > +Let us say we have 3 groups(1 task each) A,B,C each having 2, 4, 6 shares > respectively. Hence if the tasks are running infinitely they are supposed to > get 16.66%, 33.33%, 50% cpu time respectively. This test case tests that each > group should get the cpu time in the same(above) ratio irrespective of the > -shares values provided the ratio is not changed i.e. the cpu time per group > -should not change if we change the shares from 2, 4, 6 to 200, 400, 600 or > -to 20K, 40K, 60K etc. > +shares absolute values provided the ratio is not changed i.e. the cpu time per > +group should not change if we change the shares from 2, 4, 6 to 200, 400, 600 or > +to 20K, 40K, 60K etc (provided the working conditions do not change). > +Thus the scheduling is proportional bandwidth scheduling and not absolute > +bandwidth scheduling. > +This was the test and outcome for test01. For test02 the setup is kept same. > +Test 02 tests if the fairness persists among different runs over a period of > +time. So in this test more than one sets of reading are taken and the expected > +outcome is that the cpu time for a task should remain constant among all the > +runs provided the working environment is same for the test. > +Currently the support to create an ideal environment for all the runs is not > +available in the test because of some required feature in the kernel. Hence > +there may be some variations among different runs depending on the execution > +of system default tasks which can run any time. > +The fix for this is supposed to be merged with next release. > > > How to view the results: > Index: ltp-full-20080229/testcases/kernel/controllers/cpuctl/parameters.sh > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/cpuctl/parameters.sh > +++ ltp-full-20080229/testcases/kernel/controllers/cpuctl/parameters.sh > @@ -30,13 +30,13 @@ > # groups in that, creates fifo to fire tasks at one time. # > # cleanup(): Does full system cleanup # > # # > -# Author: Sudhir Kumar <sudhirkumarmalik@In.ibm.com> # > +# Author: Sudhir Kumar <sk...@li...> # > # # > # History: # > # # > -# DATE NAME EMAIL DESC # > +# DATE NAME EMAIL DESC # > # # > -# 20/12/07 Sudhir Kumar <sud...@in...> Created this test # > +# 20/12/07 Sudhir Kumar <sk...@li...> Created this test # > # # > ################################################################################# > > Index: ltp-full-20080229/testcases/kernel/controllers/cpuctl/run_cpuctl_stress_test.sh > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/cpuctl/run_cpuctl_stress_test.sh > +++ ltp-full-20080229/testcases/kernel/controllers/cpuctl/run_cpuctl_stress_test.sh > @@ -37,13 +37,13 @@ > # Precaution: Avoid system use by other applications/users to get fair and # > # appropriate results # > # # > -# Author: Sudhir Kumar <sudhirkumarmalik@In.ibm.com> # > +# Author: Sudhir Kumar <sk...@li...> # > # # > # History: # > # # > -# DATE NAME EMAIL DESC # > +# DATE NAME EMAIL DESC # > # # > -# 20/12/07 Sudhir Kumar <sud...@in...> Created this test # > +# 20/12/07 Sudhir Kumar <sk...@li...> Created this test # > # # > ################################################################################# > > Index: ltp-full-20080229/testcases/kernel/controllers/cpuctl/run_cpuctl_test.sh > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/cpuctl/run_cpuctl_test.sh > +++ ltp-full-20080229/testcases/kernel/controllers/cpuctl/run_cpuctl_test.sh > @@ -24,8 +24,8 @@ > # Description: This file runs the setup for testing diff cpucontroller feature. # > # After setup it runs diff test cases in diff setup. # > # # > -# Test 01: Tests if fairness persists among different runs # > -# Test 02: Tests fairness with respect to absolute share values # > +# Test 01: Tests fairness with respect to absolute share values # > +# Test 02: Tests if fairness persists among different runs # > # Test 03: Granularity test with respect to shares values # > # Test 04: Nice value effect on group scheduling # > # Test 05: Task migration test # > @@ -33,13 +33,13 @@ > # Precaution: Avoid system use by other applications/users to get fair and # > # appropriate results # > # # > -# Author: Sudhir Kumar <sudhirkumarmalik@In.ibm.com> # > +# Author: Sudhir Kumar <sk...@li...> # > # # > # History: # > # # > -# DATE NAME EMAIL DESC # > +# DATE NAME EMAIL DESC # > # # > -# 20/12/07 Sudhir Kumar <sud...@in...> Created this test # > +# 20/12/07 Sudhir Kumar <sk...@li...> Created this test # > # # > ################################################################################# > > @@ -144,7 +144,7 @@ NUM_CPUS=`cat /proc/cpuinfo | grep -w pr > TASK_NUM=`expr $TASK_NUM + 1`; > cp cpuctl_test02 cpuctl_task_$TASK_NUM 2>/dev/null; > chmod +x cpuctl_task_$TASK_NUM; > - if [ $i -eq 1 ] # Renice 1 task in each group > + if [ $i -eq 1 ] # Renice all tasks of group 1 > then > NICELEVEL=$NICEVALUE; > else > Index: ltp-full-20080229/testcases/kernel/controllers/libcontrollers/libcontrollers.c > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/libcontrollers/libcontrollers.c > +++ ltp-full-20080229/testcases/kernel/controllers/libcontrollers/libcontrollers.c > @@ -1,3 +1,38 @@ > +/******************************************************************************/ > +/* */ > +/* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ > +/* */ > +/******************************************************************************/ > + > +/******************************************************************************/ > +/* */ > +/* File: libcontrollers.c */ > +/* */ > +/* Description: This file contains the definitions for the functions/apis */ > +/* for the controllers library. This library is used by the */ > +/* controllers testcases. */ > +/* */ > +/* Author: Sudhir Kumar sk...@li... */ > +/* */ > +/* History: */ > +/* Created- 15/02/2008 -Sudhir Kumar <sk...@li...> */ > +/* */ > +/******************************************************************************/ > + > #include "libcontrollers.h" > > /* > @@ -108,7 +143,7 @@ int read_file(char *filepath, int action > } > > /* > - * Function: errir_function() > + * Function: error_function() > * Prints error message and returns -1 > */ > > Index: ltp-full-20080229/testcases/kernel/controllers/libcontrollers/libcontrollers.h > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/libcontrollers/libcontrollers.h > +++ ltp-full-20080229/testcases/kernel/controllers/libcontrollers/libcontrollers.h > @@ -1,3 +1,38 @@ > +/******************************************************************************/ > +/* */ > +/* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ > +/* */ > +/******************************************************************************/ > + > +/******************************************************************************/ > +/* */ > +/* File: libcontrollers.h */ > +/* */ > +/* Description: This file contains the declarations for the functions and */ > +/* variables used by the library and the test files. */ > +/* */ > +/* Author: Sudhir Kumar sk...@li... */ > +/* */ > +/* History: */ > +/* Created- 15/02/2008 -Sudhir Kumar <sk...@li...> */ > +/* */ > +/******************************************************************************/ > + > +/* Standard Include Files */ > #include <dirent.h> > #include <limits.h> > #include <stdio.h> > Index: ltp-full-20080229/testcases/kernel/controllers/testplan.txt > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/testplan.txt > +++ ltp-full-20080229/testcases/kernel/controllers/testplan.txt > @@ -10,15 +10,5 @@ cases. > A brief description of all the testcases is given in the corresponding > controllers directory. > > -CPU CONTROLLER: > -============== > - > -Test 01: > - > -The aim of the test is to find any dependency of cpu controller on exact value > -of shares to schedule the tasks. For example if there are two groups running > -1 task each then they must get the cpu time in the same ratio irrespective of > -the share values i.e. share ratios 1:2, 10:20, 100:200, 1000:2000 etc should > -give the same cpu usage for each group. > - > -For more information on resource controllers please refer to cgroups.txt in kernel documentation. > +For more information on resource controllers please refer to cgroups.txt in > +kernel source code documentation. > Index: ltp-full-20080229/testcases/kernel/controllers/test_controllers.sh > =================================================================== > --- ltp-full-20080229.orig/testcases/kernel/controllers/test_controllers.sh > +++ ltp-full-20080229/testcases/kernel/controllers/test_controllers.sh > @@ -51,7 +51,7 @@ then > else > echo "CONTROLLERS TESTCASES: WARNING"; > echo "Kernel does not support for cpu controller"; > - echo "Skipping all controllers testcases...."; > + echo "Skipping all cpu controller testcases...."; > fi > else > echo "CONTROLLERS TESTCASES: WARNING" > > > Thanks > Sudhir Kumar |