Changeset cb01e1e in mainline for kernel/test/mm/falloc2.c
- Timestamp:
- 2009-04-04T00:26:27Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a85aebd
- Parents:
- 171f9a1
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/test/mm/falloc2.c
r171f9a1 rcb01e1e 40 40 #include <arch.h> 41 41 42 #define MAX_FRAMES 25643 #define MAX_ORDER 842 #define MAX_FRAMES 256 43 #define MAX_ORDER 8 44 44 45 #define THREAD_RUNS 146 #define THREADS 845 #define THREAD_RUNS 1 46 #define THREADS 8 47 47 48 48 static atomic_t thread_count; 49 49 static atomic_t thread_fail; 50 static bool sh_quiet;51 50 52 static void falloc(void * 51 static void falloc(void *arg) 53 52 { 54 53 int order, run, allocated, i; … … 58 57 void **frames = (void **) malloc(MAX_FRAMES * sizeof(void *), FRAME_ATOMIC); 59 58 if (frames == NULL) { 60 if (!sh_quiet) 61 printf("Thread #%" PRIu64 " (cpu%u): Unable to allocate frames\n", THREAD->tid, CPU->id); 59 TPRINTF("Thread #%" PRIu64 " (cpu%u): Unable to allocate frames\n", THREAD->tid, CPU->id); 62 60 atomic_inc(&thread_fail); 63 61 atomic_dec(&thread_count); … … 66 64 67 65 thread_detach(THREAD); 68 66 69 67 for (run = 0; run < THREAD_RUNS; run++) { 70 68 for (order = 0; order <= MAX_ORDER; order++) { 71 if (!sh_quiet) 72 printf("Thread #%" PRIu64 " (cpu%u): Allocating %d frames blocks ... \n", THREAD->tid, CPU->id, 1 << order); 69 TPRINTF("Thread #%" PRIu64 " (cpu%u): Allocating %d frames blocks ... \n", THREAD->tid, CPU->id, 1 << order); 73 70 74 71 allocated = 0; … … 82 79 } 83 80 84 if (!sh_quiet) 85 printf("Thread #%" PRIu64 " (cpu%u): %d blocks allocated.\n", THREAD->tid, CPU->id, allocated); 86 87 if (!sh_quiet) 88 printf("Thread #%" PRIu64 " (cpu%u): Deallocating ... \n", THREAD->tid, CPU->id); 81 TPRINTF("Thread #%" PRIu64 " (cpu%u): %d blocks allocated.\n", THREAD->tid, CPU->id, allocated); 82 TPRINTF("Thread #%" PRIu64 " (cpu%u): Deallocating ... \n", THREAD->tid, CPU->id); 89 83 90 84 for (i = 0; i < allocated; i++) { 91 85 for (k = 0; k <= (((index_t) FRAME_SIZE << order) - 1); k++) { 92 86 if (((uint8_t *) frames[i])[k] != val) { 93 if (!sh_quiet) 94 printf("Thread #%" PRIu64 " (cpu%u): Unexpected data (%c) in block %p offset %#" PRIi "\n", THREAD->tid, CPU->id, ((char *) frames[i])[k], frames[i], k); 87 TPRINTF("Thread #%" PRIu64 " (cpu%u): Unexpected data (%c) in block %p offset %#" PRIi "\n", THREAD->tid, CPU->id, ((char *) frames[i])[k], frames[i], k); 95 88 atomic_inc(&thread_fail); 96 89 goto cleanup; … … 100 93 } 101 94 102 if (!sh_quiet) 103 printf("Thread #%" PRIu64 " (cpu%u): Finished run.\n", THREAD->tid, CPU->id); 95 TPRINTF("Thread #%" PRIu64 " (cpu%u): Finished run.\n", THREAD->tid, CPU->id); 104 96 } 105 97 } 106 107 cleanup: 98 99 cleanup: 108 100 free(frames); 109 101 110 if (!sh_quiet) 111 printf("Thread #%" PRIu64 " (cpu%u): Exiting\n", THREAD->tid, CPU->id); 102 TPRINTF("Thread #%" PRIu64 " (cpu%u): Exiting\n", THREAD->tid, CPU->id); 112 103 atomic_dec(&thread_count); 113 104 } 114 105 115 char * test_falloc2(bool quiet)106 char *test_falloc2(void) 116 107 { 117 108 unsigned int i; 118 sh_quiet = quiet; 119 109 120 110 atomic_set(&thread_count, THREADS); 121 111 atomic_set(&thread_fail, 0); 122 112 123 113 for (i = 0; i < THREADS; i++) { 124 114 thread_t * thrd = thread_create(falloc, NULL, TASK, 0, "falloc", false); 125 115 if (!thrd) { 126 if (!quiet) 127 printf("Could not create thread %u\n", i); 116 TPRINTF("Could not create thread %u\n", i); 128 117 break; 129 118 } … … 132 121 133 122 while (atomic_get(&thread_count) > 0) { 134 if (!quiet) 135 printf("Threads left: %ld\n", atomic_get(&thread_count)); 123 TPRINTF("Threads left: %ld\n", atomic_get(&thread_count)); 136 124 thread_sleep(1); 137 125 }
Note:
See TracChangeset
for help on using the changeset viewer.