Changeset abfc9f3 in mainline
- Timestamp:
- 2012-06-20T11:54:56Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6eef3c4
- Parents:
- f97f1e51
- Location:
- kernel/test/mm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/test/mm/falloc1.c
rf97f1e51 rabfc9f3 37 37 #include <align.h> 38 38 39 #define MAX_FRAMES 1024 39 #define MAX_FRAMES 1024U 40 40 #define MAX_ORDER 8 41 41 #define TEST_RUNS 2 42 42 43 const char *test_falloc1(void) { 44 uintptr_t *frames 45 = (uintptr_t *) malloc(MAX_FRAMES * sizeof(uintptr_t), 0); 46 int results[MAX_ORDER + 1]; 47 48 int i, order, run; 49 int allocated; 50 43 const char *test_falloc1(void) 44 { 51 45 if (TEST_RUNS < 2) 52 46 return "Test is compiled with TEST_RUNS < 2"; 53 47 48 uintptr_t *frames = (uintptr_t *) 49 malloc(MAX_FRAMES * sizeof(uintptr_t), 0); 54 50 if (frames == NULL) 55 51 return "Unable to allocate frames"; 56 52 57 for (run = 0; run < TEST_RUNS; run++) { 58 for (order = 0; order <= MAX_ORDER; order++) { 59 TPRINTF("Allocating %d frames blocks ... ", 1 << order); 53 unsigned int results[MAX_ORDER + 1]; 54 for (unsigned int run = 0; run < TEST_RUNS; run++) { 55 for (unsigned int order = 0; order <= MAX_ORDER; order++) { 56 TPRINTF("Allocating %u frames blocks ... ", 1 << order); 60 57 61 allocated = 0; 62 for (i = 0; i < MAX_FRAMES >> order; i++) { 63 frames[allocated] = (uintptr_t) frame_alloc(order, FRAME_ATOMIC | FRAME_KA); 58 unsigned int allocated = 0; 59 for (unsigned int i = 0; i < (MAX_FRAMES >> order); i++) { 60 frames[allocated] = (uintptr_t) 61 frame_alloc(order, FRAME_ATOMIC | FRAME_KA); 64 62 65 if (ALIGN_UP(frames[allocated], FRAME_SIZE << order) != frames[allocated]) { 66 TPRINTF("Block at address %p (size %dK) is not aligned\n", 63 if (ALIGN_UP(frames[allocated], FRAME_SIZE << order) != 64 frames[allocated]) { 65 TPRINTF("Block at address %p (size %u) is not aligned\n", 67 66 (void *) frames[allocated], (FRAME_SIZE << order) >> 10); 68 67 return "Test failed"; … … 87 86 TPRINTF("Deallocating ... "); 88 87 89 for ( i = 0; i < allocated; i++)88 for (unsigned int i = 0; i < allocated; i++) 90 89 frame_free(KA2PA(frames[i])); 91 90 -
kernel/test/mm/falloc2.c
rf97f1e51 rabfc9f3 40 40 #include <arch.h> 41 41 42 #define MAX_FRAMES 256 42 #define MAX_FRAMES 256U 43 43 #define MAX_ORDER 8 44 44 … … 51 51 static void falloc(void *arg) 52 52 { 53 int order, run, allocated, i;54 53 uint8_t val = THREAD->tid % THREADS; 55 size_t k;56 54 57 void **frames = (void **) malloc(MAX_FRAMES * sizeof(void *), FRAME_ATOMIC); 55 void **frames = (void **) 56 malloc(MAX_FRAMES * sizeof(void *), FRAME_ATOMIC); 58 57 if (frames == NULL) { 59 TPRINTF("Thread #%" PRIu64 " (cpu%u): Unable to allocate frames\n", THREAD->tid, CPU->id); 58 TPRINTF("Thread #%" PRIu64 " (cpu%u): " 59 "Unable to allocate frames\n", THREAD->tid, CPU->id); 60 60 atomic_inc(&thread_fail); 61 61 atomic_dec(&thread_count); … … 65 65 thread_detach(THREAD); 66 66 67 for (run = 0; run < THREAD_RUNS; run++) { 68 for (order = 0; order <= MAX_ORDER; order++) { 69 TPRINTF("Thread #%" PRIu64 " (cpu%u): Allocating %d frames blocks ... \n", THREAD->tid, CPU->id, 1 << order); 67 for (unsigned int run = 0; run < THREAD_RUNS; run++) { 68 for (unsigned int order = 0; order <= MAX_ORDER; order++) { 69 TPRINTF("Thread #%" PRIu64 " (cpu%u): " 70 "Allocating %u frames blocks ... \n", THREAD->tid, 71 CPU->id, 1 << order); 70 72 71 allocated = 0; 72 for (i = 0; i < (MAX_FRAMES >> order); i++) { 73 frames[allocated] = frame_alloc(order, FRAME_ATOMIC | FRAME_KA); 73 unsigned int allocated = 0; 74 for (unsigned int i = 0; i < (MAX_FRAMES >> order); i++) { 75 frames[allocated] = 76 frame_alloc(order, FRAME_ATOMIC | FRAME_KA); 74 77 if (frames[allocated]) { 75 78 memsetb(frames[allocated], FRAME_SIZE << order, val); … … 79 82 } 80 83 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); 84 TPRINTF("Thread #%" PRIu64 " (cpu%u): " 85 "%u blocks allocated.\n", THREAD->tid, CPU->id, 86 allocated); 87 TPRINTF("Thread #%" PRIu64 " (cpu%u): " 88 "Deallocating ... \n", THREAD->tid, CPU->id); 83 89 84 for (i = 0; i < allocated; i++) { 85 for (k = 0; k <= (((size_t) FRAME_SIZE << order) - 1); k++) { 90 for (unsigned int i = 0; i < allocated; i++) { 91 for (size_t k = 0; k <= (((size_t) FRAME_SIZE << order) - 1); 92 k++) { 86 93 if (((uint8_t *) frames[i])[k] != val) { 87 TPRINTF("Thread #%" PRIu64 " (cpu%u): Unexpected data (%c) in block %p offset %zu\n", 88 THREAD->tid, CPU->id, ((char *) frames[i])[k], frames[i], k); 94 TPRINTF("Thread #%" PRIu64 " (cpu%u): " 95 "Unexpected data (%c) in block %p offset %zu\n", 96 THREAD->tid, CPU->id, ((char *) frames[i])[k], 97 frames[i], k); 89 98 atomic_inc(&thread_fail); 90 99 goto cleanup; … … 94 103 } 95 104 96 TPRINTF("Thread #%" PRIu64 " (cpu%u): Finished run.\n", THREAD->tid, CPU->id); 105 TPRINTF("Thread #%" PRIu64 " (cpu%u): " 106 "Finished run.\n", THREAD->tid, CPU->id); 97 107 } 98 108 } … … 101 111 free(frames); 102 112 103 TPRINTF("Thread #%" PRIu64 " (cpu%u): Exiting\n", THREAD->tid, CPU->id); 113 TPRINTF("Thread #%" PRIu64 " (cpu%u): Exiting\n", 114 THREAD->tid, CPU->id); 104 115 atomic_dec(&thread_count); 105 116 } … … 107 118 const char *test_falloc2(void) 108 119 { 109 unsigned int i;110 111 120 atomic_set(&thread_count, THREADS); 112 121 atomic_set(&thread_fail, 0); 113 122 114 for (i = 0; i < THREADS; i++) { 115 thread_t * thrd = thread_create(falloc, NULL, TASK, 0, "falloc", false); 123 for (unsigned int i = 0; i < THREADS; i++) { 124 thread_t *thrd = 125 thread_create(falloc, NULL, TASK, 0, "falloc2", false); 116 126 if (!thrd) { 117 127 TPRINTF("Could not create thread %u\n", i); … … 122 132 123 133 while (atomic_get(&thread_count) > 0) { 124 TPRINTF("Threads left: %" PRIua "\n", atomic_get(&thread_count)); 134 TPRINTF("Threads left: %" PRIua "\n", 135 atomic_get(&thread_count)); 125 136 thread_sleep(1); 126 137 }
Note:
See TracChangeset
for help on using the changeset viewer.