Subversion Repositories HelenOS-historic

Rev

Rev 1658 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1658 Rev 1780
Line 47... Line 47...
47
    cache = slab_cache_create("test_cache", size, 0, NULL, NULL,
47
    cache = slab_cache_create("test_cache", size, 0, NULL, NULL,
48
                  SLAB_CACHE_NOMAGAZINE);  
48
                  SLAB_CACHE_NOMAGAZINE);  
49
    printf("Allocating %d items...", count);
49
    printf("Allocating %d items...", count);
50
    for (i=0; i < count; i++) {
50
    for (i=0; i < count; i++) {
51
        data[i] = slab_alloc(cache, 0);
51
        data[i] = slab_alloc(cache, 0);
52
        memsetb((__address)data[i], size, 0);
52
        memsetb((uintptr_t)data[i], size, 0);
53
    }
53
    }
54
    printf("done.\n");
54
    printf("done.\n");
55
    printf("Freeing %d items...", count);
55
    printf("Freeing %d items...", count);
56
    for (i=0; i < count; i++) {
56
    for (i=0; i < count; i++) {
57
        slab_free(cache, data[i]);
57
        slab_free(cache, data[i]);
Line 59... Line 59...
59
    printf("done.\n");
59
    printf("done.\n");
60
 
60
 
61
    printf("Allocating %d items...", count);
61
    printf("Allocating %d items...", count);
62
    for (i=0; i < count; i++) {
62
    for (i=0; i < count; i++) {
63
        data[i] = slab_alloc(cache, 0);
63
        data[i] = slab_alloc(cache, 0);
64
        memsetb((__address)data[i], size, 0);
64
        memsetb((uintptr_t)data[i], size, 0);
65
    }
65
    }
66
    printf("done.\n");
66
    printf("done.\n");
67
 
67
 
68
    printf("Freeing %d items...", count/2);
68
    printf("Freeing %d items...", count/2);
69
    for (i=count-1; i >= count/2; i--) {
69
    for (i=count-1; i >= count/2; i--) {
Line 72... Line 72...
72
    printf("done.\n"); 
72
    printf("done.\n"); 
73
 
73
 
74
    printf("Allocating %d items...", count/2);
74
    printf("Allocating %d items...", count/2);
75
    for (i=count/2; i < count; i++) {
75
    for (i=count/2; i < count; i++) {
76
        data[i] = slab_alloc(cache, 0);
76
        data[i] = slab_alloc(cache, 0);
77
        memsetb((__address)data[i], size, 0);
77
        memsetb((uintptr_t)data[i], size, 0);
78
    }
78
    }
79
    printf("done.\n");
79
    printf("done.\n");
80
    printf("Freeing %d items...", count);
80
    printf("Freeing %d items...", count);
81
    for (i=0; i < count; i++) {
81
    for (i=0; i < count; i++) {
82
        slab_free(cache, data[i]);
82
        slab_free(cache, data[i]);
Line 108... Line 108...
108
slab_cache_t *thr_cache;
108
slab_cache_t *thr_cache;
109
semaphore_t thr_sem;
109
semaphore_t thr_sem;
110
 
110
 
111
static void slabtest(void *data)
111
static void slabtest(void *data)
112
{
112
{
113
    int offs = (int)(__native) data;
113
    int offs = (int)(unative_t) data;
114
    int i,j;
114
    int i,j;
115
   
115
   
116
    thread_detach(THREAD);
116
    thread_detach(THREAD);
117
   
117
   
118
    printf("Starting thread #%d...\n",THREAD->tid);
118
    printf("Starting thread #%d...\n",THREAD->tid);
Line 138... Line 138...
138
    thr_cache = slab_cache_create("thread_cache", THR_MEM_SIZE, 0,
138
    thr_cache = slab_cache_create("thread_cache", THR_MEM_SIZE, 0,
139
                      NULL, NULL,
139
                      NULL, NULL,
140
                      SLAB_CACHE_NOMAGAZINE);
140
                      SLAB_CACHE_NOMAGAZINE);
141
    semaphore_initialize(&thr_sem,0);
141
    semaphore_initialize(&thr_sem,0);
142
    for (i=0; i<THREADS; i++) {  
142
    for (i=0; i<THREADS; i++) {  
143
        if (!(t = thread_create(slabtest, (void *)(__native)i, TASK, 0, "slabtest")))
143
        if (!(t = thread_create(slabtest, (void *)(unative_t)i, TASK, 0, "slabtest")))
144
            panic("could not create thread\n");
144
            panic("could not create thread\n");
145
        thread_ready(t);
145
        thread_ready(t);
146
    }
146
    }
147
 
147
 
148
    for (i=0; i<THREADS; i++)
148
    for (i=0; i<THREADS; i++)