]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/benchmark/server/src/main.c
Some minor fixes.
[l4.git] / l4 / pkg / benchmark / server / src / main.c
index b790cc57ffcd415a5e03e5faf2889e40f79596f0..0bd379b3ad8a09b73daa951d60e4d0d4374c7438 100644 (file)
 #define ALL_WORKSETS_BENCH 
 
 struct s {
-       int dummy[56];
+       char dummy[56];
        struct s *ptr;
 };
 
-struct s array[0x1000000/sizeof(struct s)];
+struct s array[0x2100000/sizeof(struct s)];
 #define REPEATS (0x20000000)
 
 static __inline__ uint64_t rdtsc(void)
@@ -46,25 +46,29 @@ int main(int argc, char *argv[])
                while (1)       
 #endif
                {
-                       unsigned int i;
-                       for (i=0; i < size / sizeof(array[0]); i++)
-                               array[i].ptr = &array[i+1];
-                       array[ size / sizeof(array[0]) - 1].ptr = &array[0];
+               uint8_t repeat_times = 70;
+               while (repeat_times--){  
+                       
+                               unsigned int i;
+                               for (i=0; i < size / sizeof(array[0]); i++)
+                                       array[i].ptr = &array[i+1];
+                               array[ size / sizeof(array[0]) - 1].ptr = &array[0];
 
-                       i = REPEATS;
-                       volatile struct s *p = &array[0];
-                       uint64_t tic, tac;
-                       tic = rdtsc();
-                       while (i--) {
-                               p = p->ptr;
-                               //printf("%p\n", p);
-                       }
-                       tac = rdtsc();
-                       printf("%d %llu\n", size, (tac - tic) / REPEATS);
-                       fflush(stdout);
+                               i = REPEATS;
+                               volatile struct s *p = &array[0];
+                               uint64_t tic, tac;
+                               tic = rdtsc();
+                               while (i--) {
+                                       p = p->ptr;
+                                       //printf("%p\n", p);
+                               }
+                               tac = rdtsc();
+                               printf("%d %llu\n", size, (tac - tic) / REPEATS);
+                               fflush(stdout);
                }
                printf("10 sec wait and do again.\n");
                l4_sleep(10000);
+               }
        }
        return 0;       
 }