]> Git Repo - qemu.git/commitdiff
coroutine: fix /perf/nesting coroutine benchmark
authorGabriel Kerneis <[email protected]>
Tue, 17 Sep 2013 16:26:48 +0000 (18:26 +0200)
committerStefan Hajnoczi <[email protected]>
Thu, 19 Sep 2013 11:21:41 +0000 (13:21 +0200)
The /perf/nesting benchmark is broken because the counters are
not reset after each iteration. Therefore, nesting is done only
on the first iteration, and skipped on every other.

This patch fixes the issue, and reduces the number of iterations
to make it possible to run the benchmark in a reasonable amount of
time.

Signed-off-by: Gabriel Kerneis <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
tests/test-coroutine.c

index 2792191f82cb743e56a08f484fc403b22d3f34bd..15a885e88250fc1d8f4d3be7acd9f876726d8f8d 100644 (file)
@@ -182,17 +182,17 @@ static void perf_nesting(void)
     unsigned int i, maxcycles, maxnesting;
     double duration;
 
-    maxcycles = 100000000;
+    maxcycles = 10000;
     maxnesting = 1000;
     Coroutine *root;
-    NestData nd = {
-        .n_enter  = 0,
-        .n_return = 0,
-        .max      = maxnesting,
-    };
 
     g_test_timer_start();
     for (i = 0; i < maxcycles; i++) {
+        NestData nd = {
+            .n_enter  = 0,
+            .n_return = 0,
+            .max      = maxnesting,
+        };
         root = qemu_coroutine_create(nest);
         qemu_coroutine_enter(root, &nd);
     }
This page took 0.027544 seconds and 4 git commands to generate.