bug fixes for timer and timer training.
[akaros.git] / user / null.c
index 46e2499..1219636 100644 (file)
@@ -24,11 +24,18 @@ uint64_t total(uint64_t (COUNT(length) array)[], int length)
        //return (length > 0) ? sum/((uint64_t)length) : 0;
 }
 
+void print_timer(timer_t* timer)
+{
+       cprintf("%s, %llu, %llu\n", timer->label, timer->curr_run, timer->aggr_run);
+}
+
 void umain(void)
 {
-       TAGGED_TIMING_BEGIN(tst);
+       extern uint64_t timing_overhead;
        async_desc_t *desc1, *desc2;
        async_rsp_t rsp1, rsp2;
+       cprintf ("training result %llu\n", timing_overhead);
+       /*      
        cache_buster_async(&desc1, 20, 0xdeadbeef);
        cache_buster_async(&desc2, 10, 0xcafebabe);
        waiton_async_call(desc1, &rsp1);
@@ -41,8 +48,12 @@ void umain(void)
        // Note this won't actually do 100 inner runs (first parameter).  will stop
        // making calls beyond the ring size and won't wait on any extra calls.
        measure_async_call(null_async(&desc), desc, 100, 100, "Async Null");
-       
-    TAGGED_TIMING_END(tst);
+       */
+       for (int i=0; i<100;i++){
+               TAGGED_TIMING_BEGIN(umain);
+               TAGGED_TIMING_END(umain);
+       }
+       POOL_FOR_EACH(&timer_pool, print_timer);
        // Spin to make sure we don't have any resources deallocated before done
        while(1);
 }