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 <[EMAIL PROTECTED]> > > 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 [EMAIL PROTECTED] */ > +/* Author: Sudhir Kumar [EMAIL PROTECTED] */ > /* > */ > /* History: > */ > -/* Created- 20/12/2007 -Sudhir Kumar [EMAIL PROTECTED] */ > +/* Created- 20/12/2007 -Sudhir Kumar <[EMAIL PROTECTED]> */ > /* > */ > > /******************************************************************************/ > > @@ -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 [EMAIL PROTECTED] */ > +/* Author: Sudhir Kumar [EMAIL PROTECTED] */ > /* > */ > /* History: > */ > -/* Created- 20/12/2007 -Sudhir Kumar [EMAIL PROTECTED] */ > +/* Created- 20/12/2007 -Sudhir Kumar <[EMAIL PROTECTED]> */ > /* > */ > > /******************************************************************************/ > > @@ -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 [EMAIL PROTECTED] */ > +/* Author: Sudhir Kumar [EMAIL PROTECTED] */ > /* > */ > /* History: > */ > -/* Created- 20/12/2007 -Sudhir Kumar [EMAIL PROTECTED] */ > +/* Created- 20/12/2007 -Sudhir Kumar <[EMAIL PROTECTED]> */ > /* > */ > > /******************************************************************************/ > > @@ -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 [EMAIL PROTECTED] */ > +/* Author: Sudhir Kumar [EMAIL PROTECTED] */ > /* > */ > /* History: > */ > -/* Created- 20/12/2007 -Sudhir Kumar [EMAIL PROTECTED] */ > +/* Created- 20/12/2007 -Sudhir Kumar <[EMAIL PROTECTED]> */ > /* > */ > > /******************************************************************************/ > > @@ -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 <[EMAIL PROTECTED]> # > +# Author: Sudhir Kumar <[EMAIL PROTECTED]> # > # > # > # History: > # > # > # > -# DATE NAME EMAIL DESC > # > +# DATE NAME EMAIL DESC > # > # > # > -# 20/12/07 Sudhir Kumar <[EMAIL PROTECTED]> Created this test # > +# 20/12/07 Sudhir Kumar <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> # > +# Author: Sudhir Kumar <[EMAIL PROTECTED]> # > # > # > # History: > # > # > # > -# DATE NAME EMAIL DESC > # > +# DATE NAME EMAIL DESC > # > # > # > -# 20/12/07 Sudhir Kumar <[EMAIL PROTECTED]> Created this test # > +# 20/12/07 Sudhir Kumar <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> # > +# Author: Sudhir Kumar <[EMAIL PROTECTED]> # > # > # > # History: > # > # > # > -# DATE NAME EMAIL DESC > # > +# DATE NAME EMAIL DESC > # > # > # > -# 20/12/07 Sudhir Kumar <[EMAIL PROTECTED]> Created this test # > +# 20/12/07 Sudhir Kumar <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED] */ > +/* > */ > +/* History: > */ > +/* Created- 15/02/2008 -Sudhir Kumar <[EMAIL PROTECTED]> */ > +/* > */ > +/******************************************************************************/ > + > #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 [EMAIL PROTECTED] */ > +/* > */ > +/* History: > */ > +/* Created- 15/02/2008 -Sudhir Kumar <[EMAIL PROTECTED]> */ > +/* > */ > +/******************************************************************************/ > + > +/* 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 ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list