From: Subrata <sub...@us...> - 2007-06-22 11:58:07
|
Update of /cvsroot/ltp/ltp/testcases/kernel/mem/mtest05 In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv11718/ltp/testcases/kernel/mem/mtest05 Modified Files: mmstress.c Log Message: "rd...@xe..." did "mmstress" cleanups to make output unbuffered so that it is not produced repetitively and erroneously Index: mmstress.c =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/kernel/mem/mtest05/mmstress.c,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** mmstress.c 17 May 2007 11:03:25 -0000 1.23 --- mmstress.c 22 Jun 2007 11:58:01 -0000 1.24 *************** *** 24,31 **** /* */ /* Description: This is a test program that performs general stress with */ ! /* memory race condtions. It contains seven testcases that */ /* will test race conditions between simultaneous read fault, */ /* write fault, copy on write (COW) fault e.t.c. */ ! /* This testcase is intented to execute on the Linux operating */ /* system and can be easily ported to work on other operating */ /* systems as well. */ --- 24,31 ---- /* */ /* Description: This is a test program that performs general stress with */ ! /* memory race conditions. It contains seven testcases that */ /* will test race conditions between simultaneous read fault, */ /* write fault, copy on write (COW) fault e.t.c. */ ! /* This testcase is intended to execute on the Linux operating */ /* system and can be easily ported to work on other operating */ /* systems as well. */ *************** *** 33,37 **** /* Usage: mmstress -h -n TEST NUMBER -t EXECUTION TIME -v -V */ /* -h - Help */ ! /* -n TEST NUMBER - Execute a perticular testcase */ /* -t EXECUTION TIME - Execute test for a certain time */ /* -v - Verbose output */ --- 33,37 ---- /* Usage: mmstress -h -n TEST NUMBER -t EXECUTION TIME -v -V */ /* -h - Help */ ! /* -n TEST NUMBER - Execute a particular testcase */ /* -t EXECUTION TIME - Execute test for a certain time */ /* -v - Verbose output */ *************** *** 71,75 **** /* */ /* Oct-28-2003 Modified - Manoj Iyer */ ! /* - missing paranthesis added. */ /* - formatting changes. */ /* - increased NUMPAGES to 9999. */ --- 71,75 ---- /* */ /* Oct-28-2003 Modified - Manoj Iyer */ ! /* - missing parenthesis added. */ /* - formatting changes. */ /* - increased NUMPAGES to 9999. */ *************** *** 77,81 **** /* Jan-30-2003 Modified - Gary Williams */ /* - fixed a race condition between the two threads */ ! /* - made is so if any of the testcases fail the test will fail */ /* - fixed so status of child in test 6 is used to determine result */ /* - fixed the use of the remove_files function in a conditional */ --- 77,81 ---- /* Jan-30-2003 Modified - Gary Williams */ /* - fixed a race condition between the two threads */ ! /* - made it so if any of the testcases fail the test will fail */ /* - fixed so status of child in test 6 is used to determine result */ /* - fixed the use of the remove_files function in a conditional */ *************** *** 90,97 **** #include <fcntl.h> /* definition of open() */ #include <unistd.h> /* declaration of close() */ ! #include <sys/mman.h> /* declariation of mmap() */ ! #include <sys/wait.h> /* declariation for wait routine */ #include <sys/time.h> /* definitions for the interval timer */ ! #include <pthread.h> /* declariation of pthread functions */ #include <signal.h> /* definitions for signals - required for SIGALRM */ #include <errno.h> /* definitions for errors */ --- 90,97 ---- #include <fcntl.h> /* definition of open() */ #include <unistd.h> /* declaration of close() */ ! #include <sys/mman.h> /* declaration of mmap() */ ! #include <sys/wait.h> /* declaration for wait routine */ #include <sys/time.h> /* definitions for the interval timer */ ! #include <pthread.h> /* declaration of pthread functions */ #include <signal.h> /* definitions for signals - required for SIGALRM */ #include <errno.h> /* definitions for errors */ *************** *** 122,126 **** #define OPT_MISSING(prog, opt) do { \ fprintf(stderr, "%s: option -%c ", prog, opt); \ ! fprintf(stderr, "requires and argument\n"); \ } while(0) --- 122,126 ---- #define OPT_MISSING(prog, opt) do { \ fprintf(stderr, "%s: option -%c ", prog, opt); \ ! fprintf(stderr, "requires an argument\n"); \ } while(0) *************** *** 130,134 **** pthread_exit((void *)exit_val); \ } while (0) ! #define MAXTEST 7 /* total number of testcase in this program */ #define BRKSZ 512*1024 /* program data space allocation value */ --- 130,134 ---- pthread_exit((void *)exit_val); \ } while (0) ! #define MAXTEST 6 /* total number of testcase in this program */ #define BRKSZ 512*1024 /* program data space allocation value */ *************** *** 149,159 **** /* */ /* Description: handle SIGALRM raised by set_timer(), SIGALRM is raised when */ ! /* the timer expires. If any other signal is recived exit the */ /* test. */ /* */ /* Input: signal - signal number, intrested in SIGALRM! */ /* */ ! /* Return: exit -1 if unexpected signal is recived */ ! /* exit 0 if SIGALRM is recieved */ /* */ /* Synopsis: void signal_handler(int signal); */ --- 149,159 ---- /* */ /* Description: handle SIGALRM raised by set_timer(), SIGALRM is raised when */ ! /* the timer expires. If any other signal is received exit the */ /* test. */ /* */ /* Input: signal - signal number, intrested in SIGALRM! */ /* */ ! /* Return: exit -1 if unexpected signal is received */ ! /* exit 0 if SIGALRM is received */ /* */ /* Synopsis: void signal_handler(int signal); */ *************** *** 272,276 **** * This flag stops the overwrite until this routine gets to * here. At this point, it is done initializing and it is ! * safe of the parent thread to continue (which will change * args). */ --- 272,276 ---- * This flag stops the overwrite until this routine gets to * here. At this point, it is done initializing and it is ! * safe for the parent thread to continue (which will change * args). */ *************** *** 549,554 **** /* */ /* Description: map a file into memory, create threads and execute a thread */ ! /* function that will cause read faults by simulteniously reading*/ ! /* fom this memory space. */ /* */ /* Input: NONE */ --- 549,554 ---- /* */ /* Description: map a file into memory, create threads and execute a thread */ ! /* function that will cause read faults by simultaneously reading*/ ! /* from this memory space. */ /* */ /* Input: NONE */ *************** *** 578,582 **** /* */ /* Description: map a file into memory, create threads and execute a thread */ ! /* function that will cause write faults by simulteniously */ /* writing to this memory space. */ /* */ --- 578,582 ---- /* */ /* Description: map a file into memory, create threads and execute a thread */ ! /* function that will cause write faults by simultaneously */ /* writing to this memory space. */ /* */ *************** *** 607,611 **** /* */ /* Description: map a file into memory, create threads and execute a thread */ ! /* function that will cause COW faults by simulteniously */ /* writing to this memory space. */ /* */ --- 607,611 ---- /* */ /* Description: map a file into memory, create threads and execute a thread */ ! /* function that will cause COW faults by simultaneously */ /* writing to this memory space. */ /* */ *************** *** 632,639 **** /* */ /* Test: Test case tests the race condition between simultaneous READ */ ! /* faults in the same address space. File maped is /dev/zero */ /* */ /* Description: Map a file into memory, create threads and execute a thread */ ! /* function that will cause READ faults by simulteniously */ /* writing to this memory space. */ /* */ --- 632,639 ---- /* */ /* Test: Test case tests the race condition between simultaneous READ */ ! /* faults in the same address space. File mapped is /dev/zero */ /* */ /* Description: Map a file into memory, create threads and execute a thread */ ! /* function that will cause READ faults by simultaneously */ /* writing to this memory space. */ /* */ *************** *** 652,656 **** printf("\ttest4: Test case tests the race condition between\n" "\t\tsimultaneous READ faults in the same address space.\n" ! "\t\tThe file maped is /dev/zero\n"); map_and_thread("/dev/zero", thread_fault, COW_FAULT, NUMTHREAD, &retval); return (retval.status); --- 652,656 ---- printf("\ttest4: Test case tests the race condition between\n" "\t\tsimultaneous READ faults in the same address space.\n" ! "\t\tThe file mapped is /dev/zero\n"); map_and_thread("/dev/zero", thread_fault, COW_FAULT, NUMTHREAD, &retval); return (retval.status); *************** *** 663,667 **** /* fork - exit faults in the same address space. */ /* */ ! /* Description: Initilize large data in the parent process, fork a child and */ /* and the parent waits for the child to complete execution. */ /* */ --- 663,667 ---- /* fork - exit faults in the same address space. */ /* */ ! /* Description: Initialize large data in the parent process, fork a child and */ /* and the parent waits for the child to complete execution. */ /* */ *************** *** 694,698 **** /* fork NUMTHREAD number of processes, assumption is on SMP each will get */ /* a separate CPU if NRCPUS = NUMTHREAD. The child does nothing; exits */ ! /* imideately, parent waits for child to complete execution. */ do { --- 694,698 ---- /* fork NUMTHREAD number of processes, assumption is on SMP each will get */ /* a separate CPU if NRCPUS = NUMTHREAD. The child does nothing; exits */ ! /* immediately, parent waits for child to complete execution. */ do { *************** *** 724,728 **** /* fork - exec - exit faults in the same address space. */ /* */ ! /* Description: Initilize large data in the parent process, fork a child and */ /* and the parent waits for the child to complete execution. The */ /* child program execs a dummy program. */ --- 724,728 ---- /* fork - exec - exit faults in the same address space. */ /* */ ! /* Description: Initialize large data in the parent process, fork a child and */ /* and the parent waits for the child to complete execution. The */ /* child program execs a dummy program. */ *************** *** 742,746 **** pid_t pid = 0; /* process id, returned by fork system call. */ int wait_status; /* if status is not NULL store status information */ ! char *argv_init[2] = /* parameter required for dummy fiunction to execvp*/ {"arg1", NULL}; --- 742,746 ---- pid_t pid = 0; /* process id, returned by fork system call. */ int wait_status; /* if status is not NULL store status information */ ! char *argv_init[2] = /* parameter required for dummy function to execvp */ {"arg1", NULL}; *************** *** 872,875 **** --- 872,878 ---- }; + setvbuf(stdout, NULL, _IONBF, 0); + setvbuf(stderr, NULL, _IONBF, 0); + optarg = NULL; opterr = 0; *************** *** 891,895 **** case 't': if (optarg) { ! printf("Test is scheduld to run for %d hours\n", test_time = atoi(optarg)); run_once = FALSE; --- 894,898 ---- case 't': if (optarg) { ! printf("Test is scheduled to run for %d hours\n", test_time = atoi(optarg)); run_once = FALSE; *************** *** 952,958 **** if(!test_num) { ! int test_ndx = 0; /* index into the array of tests */ ! for (test_ndx = 1; test_ndx <= (MAXTEST - 1); test_ndx++) { rc = test_ptr[test_ndx](); if (rc == SUCCESS) { --- 955,961 ---- if(!test_num) { ! int test_ndx; /* index into the array of tests */ ! for (test_ndx = 1; test_ndx <= MAXTEST; test_ndx++) { rc = test_ptr[test_ndx](); if (rc == SUCCESS) { *************** *** 966,973 **** else { ! global_rc = (test_num > MAXTEST) ? fprintf(stderr, "Invalid test number, must be in range [1 - %d]\n", ! MAXTEST): test_ptr[test_num](); } --- 969,976 ---- else { ! global_rc = (test_num > MAXTEST) ? fprintf(stderr, "Invalid test number, must be in range [1 - %d]\n", ! MAXTEST): test_ptr[test_num](); } |