Changeset cb01e1e in mainline for kernel/test/mm
- Timestamp:
- 2009-04-04T00:26:27Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a85aebd
- Parents:
- 171f9a1
- Location:
- kernel/test/mm
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/test/mm/falloc1.c
r171f9a1 rcb01e1e 37 37 #include <align.h> 38 38 39 #define MAX_FRAMES 102440 #define MAX_ORDER 841 #define TEST_RUNS 239 #define MAX_FRAMES 1024 40 #define MAX_ORDER 8 41 #define TEST_RUNS 2 42 42 43 char * test_falloc1(bool quiet) { 44 uintptr_t * frames = (uintptr_t *) malloc(MAX_FRAMES * sizeof(uintptr_t), 0); 43 char *test_falloc1(void) { 44 uintptr_t *frames 45 = (uintptr_t *) malloc(MAX_FRAMES * sizeof(uintptr_t), 0); 45 46 int results[MAX_ORDER + 1]; 46 47 … … 53 54 if (frames == NULL) 54 55 return "Unable to allocate frames"; 55 56 56 57 for (run = 0; run < TEST_RUNS; run++) { 57 58 for (order = 0; order <= MAX_ORDER; order++) { 58 if (!quiet) 59 printf("Allocating %d frames blocks ... ", 1 << order); 59 TPRINTF("Allocating %d frames blocks ... ", 1 << order); 60 60 61 61 allocated = 0; … … 64 64 65 65 if (ALIGN_UP(frames[allocated], FRAME_SIZE << order) != frames[allocated]) { 66 if (!quiet) 67 printf("Block at address %p (size %dK) is not aligned\n", frames[allocated], (FRAME_SIZE << order) >> 10); 66 TPRINTF("Block at address %p (size %dK) is not aligned\n", frames[allocated], (FRAME_SIZE << order) >> 10); 68 67 return "Test failed"; 69 68 } … … 72 71 allocated++; 73 72 else { 74 if (!quiet) 75 printf("done. "); 73 TPRINTF("done. "); 76 74 break; 77 75 } 78 76 } 79 77 80 if (!quiet) 81 printf("%d blocks allocated.\n", allocated); 82 78 TPRINTF("%d blocks allocated.\n", allocated); 79 83 80 if (run) { 84 81 if (results[order] != allocated) … … 87 84 results[order] = allocated; 88 85 89 if (!quiet) 90 printf("Deallocating ... "); 86 TPRINTF("Deallocating ... "); 91 87 92 88 for (i = 0; i < allocated; i++) 93 89 frame_free(KA2PA(frames[i])); 94 90 95 if (!quiet) 96 printf("done.\n"); 91 TPRINTF("done.\n"); 97 92 } 98 93 } 99 94 100 95 free(frames); 101 96 -
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 } -
kernel/test/mm/mapping1.c
r171f9a1 rcb01e1e 36 36 #include <debug.h> 37 37 38 #define PAGE0 39 #define PAGE1 (PAGE0+PAGE_SIZE)38 #define PAGE0 0x10000000 39 #define PAGE1 (PAGE0 + PAGE_SIZE) 40 40 41 #define VALUE0 42 #define VALUE1 41 #define VALUE0 0x01234567 42 #define VALUE1 0x89abcdef 43 43 44 char * test_mapping1(bool quiet)44 char *test_mapping1(void) 45 45 { 46 46 uintptr_t frame0, frame1; 47 47 uint32_t v0, v1; 48 48 49 49 frame0 = (uintptr_t) frame_alloc(ONE_FRAME, FRAME_KA); 50 50 frame1 = (uintptr_t) frame_alloc(ONE_FRAME, FRAME_KA); 51 51 52 if (!quiet) 53 printf("Writing %#x to physical address %p.\n", VALUE0, KA2PA(frame0)); 52 TPRINTF("Writing %#x to physical address %p.\n", VALUE0, KA2PA(frame0)); 54 53 *((uint32_t *) frame0) = VALUE0; 55 if (!quiet)56 printf("Writing %#x to physical address %p.\n", VALUE1, KA2PA(frame1));54 55 TPRINTF("Writing %#x to physical address %p.\n", VALUE1, KA2PA(frame1)); 57 56 *((uint32_t *) frame1) = VALUE1; 58 57 59 if (!quiet) 60 printf("Mapping virtual address %p to physical address %p.\n", PAGE0, KA2PA(frame0)); 58 TPRINTF("Mapping virtual address %p to physical address %p.\n", PAGE0, KA2PA(frame0)); 61 59 page_mapping_insert(AS_KERNEL, PAGE0, KA2PA(frame0), PAGE_PRESENT | PAGE_WRITE); 62 if (!quiet)63 printf("Mapping virtual address %p to physical address %p.\n", PAGE1, KA2PA(frame1));60 61 TPRINTF("Mapping virtual address %p to physical address %p.\n", PAGE1, KA2PA(frame1)); 64 62 page_mapping_insert(AS_KERNEL, PAGE1, KA2PA(frame1), PAGE_PRESENT | PAGE_WRITE); 65 63 66 64 v0 = *((uint32_t *) PAGE0); 67 65 v1 = *((uint32_t *) PAGE1); 68 if (!quiet) { 69 printf("Value at virtual address %p is %#x.\n", PAGE0, v0); 70 printf("Value at virtual address %p is %#x.\n", PAGE1, v1); 71 } 66 TPRINTF("Value at virtual address %p is %#x.\n", PAGE0, v0); 67 TPRINTF("Value at virtual address %p is %#x.\n", PAGE1, v1); 72 68 73 69 if (v0 != VALUE0) … … 76 72 return "Value at v1 not equal to VALUE1"; 77 73 78 if (!quiet) 79 printf("Writing %#x to virtual address %p.\n", 0, PAGE0); 74 TPRINTF("Writing %#x to virtual address %p.\n", 0, PAGE0); 80 75 *((uint32_t *) PAGE0) = 0; 81 if (!quiet)82 printf("Writing %#x to virtual address %p.\n", 0, PAGE1);83 *((uint32_t *) PAGE1) = 0; 84 76 77 TPRINTF("Writing %#x to virtual address %p.\n", 0, PAGE1); 78 *((uint32_t *) PAGE1) = 0; 79 85 80 v0 = *((uint32_t *) PAGE0); 86 81 v1 = *((uint32_t *) PAGE1); 87 82 88 if (!quiet) { 89 printf("Value at virtual address %p is %#x.\n", PAGE0, *((uint32_t *) PAGE0)); 90 printf("Value at virtual address %p is %#x.\n", PAGE1, *((uint32_t *) PAGE1)); 91 } 92 83 TPRINTF("Value at virtual address %p is %#x.\n", PAGE0, *((uint32_t *) PAGE0)); 84 TPRINTF("Value at virtual address %p is %#x.\n", PAGE1, *((uint32_t *) PAGE1)); 85 93 86 if (v0 != 0) 94 87 return "Value at v0 not equal to 0"; … … 96 89 return "Value at v1 not equal to 0"; 97 90 98 return NULL; 91 return NULL; 99 92 } -
kernel/test/mm/purge1.c
r171f9a1 rcb01e1e 40 40 extern void tlb_invalidate_pages(asid_t asid, uintptr_t va, count_t cnt); 41 41 42 char * test_purge1(bool quiet)42 char *test_purge1(void) 43 43 { 44 44 tlb_entry_t entryi; -
kernel/test/mm/purge1_skip.c
r171f9a1 rcb01e1e 29 29 #include <test.h> 30 30 31 char *test_purge1( bool quiet)31 char *test_purge1(void) 32 32 { 33 33 return NULL; -
kernel/test/mm/slab1.c
r171f9a1 rcb01e1e 34 34 #include <memstr.h> 35 35 36 #define VAL_COUNT 36 #define VAL_COUNT 1024 37 37 38 static void * 38 static void *data[VAL_COUNT]; 39 39 40 static void testit(int size, int count , bool quiet)40 static void testit(int size, int count) 41 41 { 42 42 slab_cache_t *cache; 43 43 int i; 44 44 45 if (!quiet) 46 printf("Creating cache, object size: %d.\n", size); 45 TPRINTF("Creating cache, object size: %d.\n", size); 47 46 48 47 cache = slab_cache_create("test_cache", size, 0, NULL, NULL, 49 48 SLAB_CACHE_NOMAGAZINE); 50 49 51 if (!quiet) 52 printf("Allocating %d items...", count); 50 TPRINTF("Allocating %d items...", count); 53 51 54 52 for (i = 0; i < count; i++) { … … 57 55 } 58 56 59 if (!quiet) { 60 printf("done.\n"); 61 printf("Freeing %d items...", count); 62 } 57 TPRINTF("done.\n"); 58 59 TPRINTF("Freeing %d items...", count); 63 60 64 61 for (i = 0; i < count; i++) 65 62 slab_free(cache, data[i]); 66 63 67 if (!quiet) { 68 printf("done.\n"); 69 printf("Allocating %d items...", count); 70 } 64 TPRINTF("done.\n"); 65 66 TPRINTF("Allocating %d items...", count); 71 67 72 68 for (i = 0; i < count; i++) { … … 75 71 } 76 72 77 if (!quiet) { 78 printf("done.\n"); 79 printf("Freeing %d items...", count / 2); 80 } 73 TPRINTF("done.\n"); 74 75 TPRINTF("Freeing %d items...", count / 2); 81 76 82 77 for (i = count - 1; i >= count / 2; i--) 83 78 slab_free(cache, data[i]); 84 79 85 if (!quiet) { 86 printf("done.\n"); 87 printf("Allocating %d items...", count / 2); 88 } 80 TPRINTF("done.\n"); 81 82 TPRINTF("Allocating %d items...", count / 2); 89 83 90 84 for (i = count / 2; i < count; i++) { … … 93 87 } 94 88 95 if (!quiet) { 96 printf("done.\n"); 97 printf("Freeing %d items...", count); 98 } 89 TPRINTF("done.\n"); 90 91 TPRINTF("Freeing %d items...", count); 99 92 100 93 for (i = 0; i < count; i++) 101 94 slab_free(cache, data[i]); 102 95 103 if (!quiet)104 printf("done.\n");96 TPRINTF("done.\n"); 97 105 98 slab_cache_destroy(cache); 106 99 107 if (!quiet) 108 printf("Test complete.\n"); 100 TPRINTF("Test complete.\n"); 109 101 } 110 102 111 static void testsimple( bool quiet)103 static void testsimple(void) 112 104 { 113 testit(100, VAL_COUNT , quiet);114 testit(200, VAL_COUNT , quiet);115 testit(1024, VAL_COUNT , quiet);116 testit(2048, 512 , quiet);117 testit(4000, 128 , quiet);118 testit(8192, 128 , quiet);119 testit(16384, 128 , quiet);120 testit(16385, 128 , quiet);105 testit(100, VAL_COUNT); 106 testit(200, VAL_COUNT); 107 testit(1024, VAL_COUNT); 108 testit(2048, 512); 109 testit(4000, 128); 110 testit(8192, 128); 111 testit(16384, 128); 112 testit(16385, 128); 121 113 } 122 114 123 #define THREADS 6124 #define THR_MEM_COUNT 125 #define THR_MEM_SIZE 115 #define THREADS 6 116 #define THR_MEM_COUNT 1024 117 #define THR_MEM_SIZE 128 126 118 127 static void * 119 static void *thr_data[THREADS][THR_MEM_COUNT]; 128 120 static slab_cache_t *thr_cache; 129 121 static semaphore_t thr_sem; 130 static bool sh_quiet;131 122 132 123 static void slabtest(void *data) … … 137 128 thread_detach(THREAD); 138 129 139 if (!sh_quiet) 140 printf("Starting thread #%" PRIu64 "...\n", THREAD->tid); 130 TPRINTF("Starting thread #%" PRIu64 "...\n", THREAD->tid); 141 131 142 132 for (j = 0; j < 10; j++) { … … 151 141 } 152 142 153 if (!sh_quiet) 154 printf("Thread #%" PRIu64 " finished\n", THREAD->tid); 143 TPRINTF("Thread #%" PRIu64 " finished\n", THREAD->tid); 155 144 156 145 semaphore_up(&thr_sem); 157 146 } 158 147 159 static void testthreads( bool quiet)148 static void testthreads(void) 160 149 { 161 150 thread_t *t; 162 151 int i; 163 152 164 153 thr_cache = slab_cache_create("thread_cache", THR_MEM_SIZE, 0, NULL, NULL, 165 SLAB_CACHE_NOMAGAZINE); 154 SLAB_CACHE_NOMAGAZINE); 155 166 156 semaphore_initialize(&thr_sem, 0); 167 157 for (i = 0; i < THREADS; i++) { 168 158 if (!(t = thread_create(slabtest, (void *) (unative_t) i, TASK, 0, "slabtest", false))) { 169 if (!quiet) 170 printf("Could not create thread %d\n", i); 159 TPRINTF("Could not create thread %d\n", i); 171 160 } else 172 161 thread_ready(t); … … 178 167 slab_cache_destroy(thr_cache); 179 168 180 if (!quiet) 181 printf("Test complete.\n"); 169 TPRINTF("Test complete.\n"); 182 170 } 183 171 184 char * test_slab1(bool quiet)172 char *test_slab1(void) 185 173 { 186 sh_quiet = quiet; 187 188 testsimple(quiet); 189 testthreads(quiet); 174 testsimple(); 175 testthreads(); 190 176 191 177 return NULL; -
kernel/test/mm/slab2.c
r171f9a1 rcb01e1e 37 37 #include <synch/mutex.h> 38 38 39 #define ITEM_SIZE 25639 #define ITEM_SIZE 256 40 40 41 41 /** Fill memory with 2 caches, when allocation fails, … … 43 43 * now allocation should clean magazines and allow for full allocation. 44 44 */ 45 static void totalmemtest( bool quiet)45 static void totalmemtest(void) 46 46 { 47 47 slab_cache_t *cache1; 48 48 slab_cache_t *cache2; 49 49 int i; 50 50 51 51 void *data1, *data2; 52 52 void *olddata1 = NULL, *olddata2 = NULL; … … 55 55 cache2 = slab_cache_create("cache2_tst", ITEM_SIZE, 0, NULL, NULL, 0); 56 56 57 if (!quiet) 58 printf("Allocating..."); 57 TPRINTF("Allocating..."); 59 58 60 59 /* Use atomic alloc, so that we find end of memory */ … … 75 74 olddata1 = data1; 76 75 olddata2 = data2; 77 } while (1); 78 79 if (!quiet) { 80 printf("done.\n"); 81 printf("Deallocating cache2..."); 82 } 76 } while (true); 77 78 TPRINTF("done.\n"); 79 80 TPRINTF("Deallocating cache2..."); 83 81 84 82 /* We do not have memory - now deallocate cache2 */ … … 89 87 } 90 88 91 if (!quiet) { 92 printf("done.\n"); 93 printf("Allocating to cache1...\n"); 94 } 89 TPRINTF("done.\n"); 90 91 TPRINTF("Allocating to cache1...\n"); 95 92 96 93 for (i = 0; i < 30; i++) { 97 94 data1 = slab_alloc(cache1, FRAME_ATOMIC); 98 95 if (!data1) { 99 if (!quiet) 100 printf("Incorrect memory size - use another test."); 96 TPRINTF("Incorrect memory size - use another test."); 101 97 return; 102 98 } … … 105 101 olddata1 = data1; 106 102 } 107 while ( 1) {103 while (true) { 108 104 data1 = slab_alloc(cache1, FRAME_ATOMIC); 109 105 if (!data1) … … 114 110 } 115 111 116 if (!quiet) 117 printf("Deallocating cache1..."); 112 TPRINTF("Deallocating cache1..."); 118 113 119 114 while (olddata1) { … … 123 118 } 124 119 125 if (!quiet) { 126 printf("done.\n"); 127 slab_print_list(); 128 } 120 TPRINTF("done.\n"); 121 122 slab_print_list(); 129 123 130 124 slab_cache_destroy(cache1); … … 136 130 static condvar_t thread_starter; 137 131 static mutex_t starter_mutex; 138 static bool sh_quiet; 139 140 #define THREADS 8 132 133 #define THREADS 8 141 134 142 135 static void slabtest(void *priv) … … 150 143 mutex_unlock(&starter_mutex); 151 144 152 if (!sh_quiet) 153 printf("Starting thread #%" PRIu64 "...\n", THREAD->tid); 145 TPRINTF("Starting thread #%" PRIu64 "...\n", THREAD->tid); 154 146 155 147 /* Alloc all */ 156 if (!sh_quiet) 157 printf("Thread #%" PRIu64 " allocating...\n", THREAD->tid); 158 159 while (1) { 148 TPRINTF("Thread #%" PRIu64 " allocating...\n", THREAD->tid); 149 150 while (true) { 160 151 /* Call with atomic to detect end of memory */ 161 152 new = slab_alloc(thr_cache, FRAME_ATOMIC); … … 166 157 } 167 158 168 if (!sh_quiet) 169 printf("Thread #%" PRIu64 " releasing...\n", THREAD->tid); 159 TPRINTF("Thread #%" PRIu64 " releasing...\n", THREAD->tid); 170 160 171 161 while (data) { … … 176 166 } 177 167 178 if (!sh_quiet) 179 printf("Thread #%" PRIu64 " allocating...\n", THREAD->tid); 180 181 while (1) { 168 TPRINTF("Thread #%" PRIu64 " allocating...\n", THREAD->tid); 169 170 while (true) { 182 171 /* Call with atomic to detect end of memory */ 183 172 new = slab_alloc(thr_cache, FRAME_ATOMIC); … … 188 177 } 189 178 190 if (!sh_quiet) 191 printf("Thread #%" PRIu64 " releasing...\n", THREAD->tid); 179 TPRINTF("Thread #%" PRIu64 " releasing...\n", THREAD->tid); 192 180 193 181 while (data) { … … 198 186 } 199 187 200 if (!sh_quiet) 201 printf("Thread #%" PRIu64 " finished\n", THREAD->tid); 188 TPRINTF("Thread #%" PRIu64 " finished\n", THREAD->tid); 202 189 203 190 slab_print_list(); … … 205 192 } 206 193 207 static void multitest(int size , bool quiet)194 static void multitest(int size) 208 195 { 209 196 /* Start 8 threads that just allocate as much as possible, … … 213 200 int i; 214 201 215 if (!quiet) 216 printf("Running stress test with size %d\n", size); 202 TPRINTF("Running stress test with size %d\n", size); 217 203 218 204 condvar_initialize(&thread_starter); 219 205 mutex_initialize(&starter_mutex, MUTEX_PASSIVE); 220 206 221 207 thr_cache = slab_cache_create("thread_cache", size, 0, NULL, NULL, 0); 222 208 semaphore_initialize(&thr_sem,0); 223 209 for (i = 0; i < THREADS; i++) { 224 210 if (!(t = thread_create(slabtest, NULL, TASK, 0, "slabtest", false))) { 225 if (!quiet) 226 printf("Could not create thread %d\n", i); 211 TPRINTF("Could not create thread %d\n", i); 227 212 } else 228 213 thread_ready(t); … … 230 215 thread_sleep(1); 231 216 condvar_broadcast(&thread_starter); 232 217 233 218 for (i = 0; i < THREADS; i++) 234 219 semaphore_down(&thr_sem); 235 220 236 221 slab_cache_destroy(thr_cache); 237 if (!quiet) 238 printf("Stress test complete.\n"); 239 } 240 241 char * test_slab2(bool quiet) 242 { 243 sh_quiet = quiet; 244 245 if (!quiet) 246 printf("Running reclaim single-thread test .. pass 1\n"); 247 totalmemtest(quiet); 248 if (!quiet) 249 printf("Running reclaim single-thread test .. pass 2\n"); 250 totalmemtest(quiet); 251 if (!quiet) 252 printf("Reclaim test OK.\n"); 253 254 multitest(128, quiet); 255 multitest(2048, quiet); 256 multitest(8192, quiet); 222 TPRINTF("Stress test complete.\n"); 223 } 224 225 char *test_slab2(void) 226 { 227 TPRINTF("Running reclaim single-thread test .. pass 1\n"); 228 totalmemtest(); 229 230 TPRINTF("Running reclaim single-thread test .. pass 2\n"); 231 totalmemtest(); 232 233 TPRINTF("Reclaim test OK.\n"); 234 235 multitest(128); 236 multitest(2048); 237 multitest(8192); 257 238 258 239 return NULL;
Note:
See TracChangeset
for help on using the changeset viewer.