Commit a9031675 authored by Gabriel Kerneis's avatar Gabriel Kerneis Committed by Stefan Hajnoczi
Browse files

coroutine: fix /perf/nesting coroutine benchmark



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: default avatarGabriel Kerneis <gabriel@kerneis.info>
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 2fcd15ea
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -182,17 +182,17 @@ static void perf_nesting(void)
    unsigned int i, maxcycles, maxnesting;
    double duration;

    maxcycles = 100000000;
    maxcycles = 10000;
    maxnesting = 1000;
    Coroutine *root;

    g_test_timer_start();
    for (i = 0; i < maxcycles; i++) {
        NestData nd = {
            .n_enter  = 0,
            .n_return = 0,
            .max      = maxnesting,
        };

    g_test_timer_start();
    for (i = 0; i < maxcycles; i++) {
        root = qemu_coroutine_create(nest);
        qemu_coroutine_enter(root, &nd);
    }