On Tue, 2008-04-29 at 10:35 +0530, Sudhir Kumar wrote:
> Sorry Folks!
> It seems being the midnight I forgot to modify the subject for second patch.
> It reflects as the PATCH 1/2 ....testcase1
> this patch is PATCH 2/2 .....testcase2.
Thanks Sudhir for the Patches. Can you please note down the following
points:
1) [PATCH 1/2]CONTROLLERS: memory resource controller testcase1,
Dhaval gave some review comments. So, please send me an updated Patch
for this. And i will merge once the updated one is also acked.
2) [PATCH 2/2]CONTROLLERS: memory resource controller testcase2,
This is not yet acked or reviewed.
3) Send us a sample test result for the new Memory Controllers
testcase(s). Hope your Patch also adds some documentation for Memory
Controllers.
Regards--
Subrata
>
> > Hi All,
> > This patch contains second testcase for memory controller.
> > This test allocates memory in a new group after task migration.
> >
> > Signed-off-by: Sudhir KUmar <[EMAIL PROTECTED]>
> >
> >
> > Index: ltp-full-20080229/testcases/kernel/controllers/memctl/memctl_test01.c
> > ===================================================================
> > ---
> > ltp-full-20080229.orig/testcases/kernel/controllers/memctl/memctl_test01.c
> > +++ ltp-full-20080229/testcases/kernel/controllers/memctl/memctl_test01.c
> > @@ -62,6 +62,7 @@ int num_of_chunks, chunk_size, test_num,
> >
> > extern void cleanup();
> > void signal_handler_sigusr1 (int signal);
> > +void signal_handler_sigusr2 (int signal);
> > int allocate_memory(void);
> >
> > int main(int argc, char *argv[])
> > @@ -69,7 +70,7 @@ int main(int argc, char *argv[])
> > int ret;
> > char mygroup[64], mytaskfile[64];
> > char *mygroup_p, *script_pid_p, *test_num_p, *chunk_size_p,
> > *num_chunks_p;
> > - struct sigaction newaction1, oldaction1;
> > + struct sigaction newaction1, newaction2, oldaction1, oldaction2;
> >
> > /* Signal handling for SIGUSR1 recieved from script */
> > sigemptyset (&newaction1.sa_mask);
> > @@ -77,6 +78,12 @@ int main(int argc, char *argv[])
> > newaction1.sa_flags=0;
> > sigaction (SIGUSR1, &newaction1, &oldaction1);
> >
> > + /* Signal handling for SIGUSR2 recieved from script */
> > + sigemptyset (&newaction2.sa_mask);
> > + newaction2.sa_handler = signal_handler_sigusr2;
> > + newaction2.sa_flags=0;
> > + sigaction (SIGUSR2, &newaction2, &oldaction2);
> > +
> > /*
> > *Capture variables from the script environment
> > */
> > @@ -134,6 +141,21 @@ void signal_handler_sigusr1 (int signal)
> > exit (0);
> > }
> >
> > +/*
> > + * Function: signal_handler_sigusr2()
> > + * signal handler for the new action
> > + */
> > +
> > +void signal_handler_sigusr2 (int signal)
> > +{
> > + int i;
> > + for (i=0; i< num_of_chunks; ++i)
> > + free(array_of_chunks[i]);
> > + free(array_of_chunks);
> > + allocate_memory();
> > +}
> > +
> > +
> > int allocate_memory()
> > {
> > int i, j;
> > Index:
> > ltp-full-20080229/testcases/kernel/controllers/memctl/run_memctl_test.sh
> > ===================================================================
> > ---
> > ltp-full-20080229.orig/testcases/kernel/controllers/memctl/run_memctl_test.sh
> > +++ ltp-full-20080229/testcases/kernel/controllers/memctl/run_memctl_test.sh
> > @@ -71,7 +71,8 @@ fi
> >
> > case ${TEST_NUM} in
> >
> > -"1" ) NUM_GROUPS=2;
> > +"1" | "2" )
> > + NUM_GROUPS=2;
> > MEMLIMIT_GROUP_1=100M;
> > MEMLIMIT_GROUP_2=100M;
> > CHUNK_SIZE=6291456; # malloc n chunks of
> > size m
> > @@ -101,7 +102,7 @@ echo "TEST STARTED: Please avoid using s
> > #Check if C source file has been compiled and then run it in different
> > groups
> >
> > case $TEST_NUM in
> > -"1")
> > +"1" | "2" )
> > setmemlimits;
> > if [ -f memctl_test01 ]
> > then
> > @@ -156,26 +157,55 @@ case $TEST_NUM in
> > # Wait for some time to check if memory usage of group_2
> > increases
> > # This is not the right approach however working. ???
> > thoughts???
> > sleep 10;
> > - GRP2_MEMUSAGE_NEW=`cat
> > /dev/memctl/group_2/memory.usage_in_bytes`;
> > - echo After task migration to group2
> > - echo group2 memory usage: $GRP2_MEMUSAGE_NEW Bytes
> >
> > # Decision formula: decides PASS or FAIL
> > - if [ $GRP2_MEMUSAGE_NEW -gt $GRP2_MEMUSAGE_OLD ]
> > - then
> > - echo "TFAIL Memory resource Controller: Task
> > Migration test FAILED";
> > - else
> > - echo "TPASS Memory Resource Controller: Task
> > Migration test PASSED";
> > - fi
> > + case $TEST_NUM in
> > + "1" )
> > + GRP2_MEMUSAGE_NEW=`cat
> > /dev/memctl/group_2/memory.usage_in_bytes`;
> > + echo After task migration to group2
> > + echo group2 memory usage: $GRP2_MEMUSAGE_NEW Bytes
> >
> > - # here we can add another testcases
> > + if [ $GRP2_MEMUSAGE_NEW -gt $GRP2_MEMUSAGE_OLD ]
> > + then
> > + echo "TFAIL Memory resource Controller: Task
> > Migration test $TEST_NUM FAILED";
> > + else
> > + echo "TPASS Memory Resource Controller: Task
> > Migration test $TEST_NUM PASSED";
> > + fi
> >
> > # Now we can signal the task to finish and do the
> > cleanup
> > - for i in $(seq 1 $TOTAL_TASKS)
> > - do
> > - kill -SIGUSR1 ${PID[$i]};
> > - done
> > - else
> > + for i in $(seq 1 $TOTAL_TASKS)
> > + do
> > + kill -SIGUSR1 ${PID[$i]};
> > + done
> > + ;;
> > + "2" )
> > + GRP2_MEMUSAGE_OLD=`cat
> > /dev/memctl/group_2/memory.usage_in_bytes`;
> > +
> > + # signal the migrated tasks to allocate memory
> > + for i in $(seq 1 $TOTAL_TASKS)
> > + do
> > + kill -SIGUSR2 ${PID[$i]};
> > + done
> > + sleep 10; # Is it fine? Need input/alternates
> > + GRP2_MEMUSAGE_NEW=`cat
> > /dev/memctl/group_2/memory.usage_in_bytes`;
> > + echo After task migration to group2 and doing malloc
> > + echo group2 memory usage: $GRP2_MEMUSAGE_NEW Bytes
> > + if [ $GRP2_MEMUSAGE_NEW -le $GRP2_MEMUSAGE_OLD ]
> > + then
> > + echo "TFAIL Memory resource Controller: Task
> > Migration test $TEST_NUM FAILED";
> > + else
> > + # Now we can signal the task to finish and do
> > the cleanup
> > + for i in $(seq 1 $TOTAL_TASKS)
> > + do
> > + kill -SIGUSR1 ${PID[$i]};
> > + done
> > + echo "TPASS Memory Resource Controller: Task
> > Migration test $TEST_NUM PASSED";
> > + fi
> > +
> > + ;;
> > + esac
> > +
> > + else
> > echo "Source file not compiled..Plz check Makefile...Exiting
> > test"
> > cleanup;
> > exit -1;
> > 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
> > @@ -60,6 +60,7 @@ then
> > if [ "$MEM_CONTROLLER" = "memory" ]
> > then
> > $LTPROOT/testcases/bin/run_memctl_test.sh 1;
> > + $LTPROOT/testcases/bin/run_memctl_test.sh 2;
> > else
> > echo "CONTROLLERS TESTCASES: WARNING";
> > echo "Kernel does not support for memory controller";
> >
> >
> > Thanks
> > Sudhir
-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list