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.
> 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