]> Git Repo - linux.git/commitdiff
perf sched replay: Use replay_repeat to calculate the runavg of cpu usage instead...
authorYunlong Song <[email protected]>
Tue, 31 Mar 2015 13:46:36 +0000 (21:46 +0800)
committerArnaldo Carvalho de Melo <[email protected]>
Wed, 8 Apr 2015 12:07:27 +0000 (09:07 -0300)
Since sched->replay_repeat is set to 10 as default, the sched->run_avg,
sched->runavg_cpu_usage, and sched->runavg_parent_cpu_usage all use
10 to calculate their value.

However, the replay_repeat can be changed to other value by using -r
option, so the calculation above should use replay_repeat to achieve
more accurate results instead of the default value 10.

Signed-off-by: Yunlong Song <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Wang Nan <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
tools/perf/builtin-sched.c

index 7b7b798b22b2cc284473570ff5be2f5da74f9a95..5275bab703138cbeb9c40f1ff22174ac52ca2d13 100644 (file)
@@ -607,13 +607,13 @@ static void wait_for_tasks(struct perf_sched *sched)
        cpu_usage_1 = get_cpu_usage_nsec_parent();
        if (!sched->runavg_cpu_usage)
                sched->runavg_cpu_usage = sched->cpu_usage;
-       sched->runavg_cpu_usage = (sched->runavg_cpu_usage * 9 + sched->cpu_usage) / 10;
+       sched->runavg_cpu_usage = (sched->runavg_cpu_usage * (sched->replay_repeat - 1) + sched->cpu_usage) / sched->replay_repeat;
 
        sched->parent_cpu_usage = cpu_usage_1 - cpu_usage_0;
        if (!sched->runavg_parent_cpu_usage)
                sched->runavg_parent_cpu_usage = sched->parent_cpu_usage;
-       sched->runavg_parent_cpu_usage = (sched->runavg_parent_cpu_usage * 9 +
-                                        sched->parent_cpu_usage)/10;
+       sched->runavg_parent_cpu_usage = (sched->runavg_parent_cpu_usage * (sched->replay_repeat - 1) +
+                                        sched->parent_cpu_usage)/sched->replay_repeat;
 
        ret = pthread_mutex_lock(&sched->start_work_mutex);
        BUG_ON(ret);
@@ -645,7 +645,7 @@ static void run_one_test(struct perf_sched *sched)
        sched->sum_fluct += fluct;
        if (!sched->run_avg)
                sched->run_avg = delta;
-       sched->run_avg = (sched->run_avg * 9 + delta) / 10;
+       sched->run_avg = (sched->run_avg * (sched->replay_repeat - 1) + delta) / sched->replay_repeat;
 
        printf("#%-3ld: %0.3f, ", sched->nr_runs, (double)delta / 1000000.0);
 
This page took 0.058937 seconds and 4 git commands to generate.