Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/test/mm/falloc2.c

    r6eef3c4 r9d58539  
    4040#include <arch.h>
    4141
    42 #define MAX_FRAMES  256U
     42#define MAX_FRAMES  256
    4343#define MAX_ORDER   8
    4444
     
    5151static void falloc(void *arg)
    5252{
     53        int order, run, allocated, i;
    5354        uint8_t val = THREAD->tid % THREADS;
     55        size_t k;
    5456       
    55         void **frames = (void **)
    56             malloc(MAX_FRAMES * sizeof(void *), FRAME_ATOMIC);
     57        void **frames =  (void **) malloc(MAX_FRAMES * sizeof(void *), FRAME_ATOMIC);
    5758        if (frames == NULL) {
    58                 TPRINTF("Thread #%" PRIu64 " (cpu%u): "
    59                     "Unable to allocate frames\n", THREAD->tid, CPU->id);
     59                TPRINTF("Thread #%" PRIu64 " (cpu%u): Unable to allocate frames\n", THREAD->tid, CPU->id);
    6060                atomic_inc(&thread_fail);
    6161                atomic_dec(&thread_count);
     
    6565        thread_detach(THREAD);
    6666       
    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);
     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);
    7270                       
    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);
     71                        allocated = 0;
     72                        for (i = 0; i < (MAX_FRAMES >> order); i++) {
     73                                frames[allocated] = frame_alloc(order, FRAME_ATOMIC | FRAME_KA);
    7774                                if (frames[allocated]) {
    7875                                        memsetb(frames[allocated], FRAME_SIZE << order, val);
     
    8279                        }
    8380                       
    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);
     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);
    8983                       
    90                         for (unsigned int i = 0; i < allocated; i++) {
    91                                 for (size_t k = 0; k <= (((size_t) FRAME_SIZE << order) - 1);
    92                                     k++) {
     84                        for (i = 0; i < allocated; i++) {
     85                                for (k = 0; k <= (((size_t) FRAME_SIZE << order) - 1); k++) {
    9386                                        if (((uint8_t *) frames[i])[k] != val) {
    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);
     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);
    9889                                                atomic_inc(&thread_fail);
    9990                                                goto cleanup;
     
    10394                        }
    10495                       
    105                         TPRINTF("Thread #%" PRIu64 " (cpu%u): "
    106                             "Finished run.\n", THREAD->tid, CPU->id);
     96                        TPRINTF("Thread #%" PRIu64 " (cpu%u): Finished run.\n", THREAD->tid, CPU->id);
    10797                }
    10898        }
     
    111101        free(frames);
    112102       
    113         TPRINTF("Thread #%" PRIu64 " (cpu%u): Exiting\n",
    114             THREAD->tid, CPU->id);
     103        TPRINTF("Thread #%" PRIu64 " (cpu%u): Exiting\n", THREAD->tid, CPU->id);
    115104        atomic_dec(&thread_count);
    116105}
     
    118107const char *test_falloc2(void)
    119108{
     109        unsigned int i;
     110       
    120111        atomic_set(&thread_count, THREADS);
    121112        atomic_set(&thread_fail, 0);
    122113       
    123         for (unsigned int i = 0; i < THREADS; i++) {
    124                 thread_t *thrd = thread_create(falloc, NULL, TASK,
    125                     THREAD_FLAG_NONE, "falloc2");
     114        for (i = 0; i < THREADS; i++) {
     115                thread_t * thrd = thread_create(falloc, NULL, TASK, 0, "falloc", false);
    126116                if (!thrd) {
    127117                        TPRINTF("Could not create thread %u\n", i);
     
    132122       
    133123        while (atomic_get(&thread_count) > 0) {
    134                 TPRINTF("Threads left: %" PRIua "\n",
    135                     atomic_get(&thread_count));
     124                TPRINTF("Threads left: %" PRIua "\n", atomic_get(&thread_count));
    136125                thread_sleep(1);
    137126        }
Note: See TracChangeset for help on using the changeset viewer.