Re: [PATCH 1/2] perf sched: Introduce timehist command - v2

From: David Ahern
Date: Mon Dec 02 2013 - 11:19:31 EST


On 12/2/13, 2:33 AM, Pekka Enberg wrote:
I'm seeing rather large "sch delay" numbers on Fedora 19's default
kernel that seem like a data error of some sort:

4500.663117 [02] fix_client[7216] 0.007
18446744073708.033 1.786


Does this address the large numbers for you?

David diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
index abcb40a44151..ae71782064ac 100644
--- a/tools/perf/builtin-sched.c
+++ b/tools/perf/builtin-sched.c
@@ -1751,8 +1751,12 @@ static void timehist_update_runtime_stats(struct thread_runtime *r,
r->dt_between = 0;
if (tprev) {
r->dt_run = t - tprev;
- if (r->ready_to_run)
- r->dt_delay = tprev - r->ready_to_run;
+ if (r->ready_to_run) {
+ if (r->ready_to_run > tprev)
+ pr_debug("time travel: wakeup time for task > previous sched_switch event\n");
+ else
+ r->dt_delay = tprev - r->ready_to_run;
+ }

if (r->last_time > tprev)
pr_debug("time travel: last sched out time for task > previous sched_switch event\n");