diff -urN oldtree/kernel/sched_ingosched.c newtree/kernel/sched_ingosched.c --- oldtree/kernel/sched_ingosched.c 2006-08-19 16:57:07.269775250 -0400 +++ newtree/kernel/sched_ingosched.c 2006-08-19 16:59:58.240460250 -0400 @@ -500,7 +500,7 @@ rq_sched_info_arrive(struct rq *rq, unsigned long delta_jiffies) { if (rq) { - rq->rq_sched_info.max_delay = max(t->sched_info.max_delay, delta_jiffies); + rq->rq_sched_info.max_delay = max(rq->rq_sched_info.max_delay, delta_jiffies); rq->rq_sched_info.run_delay += delta_jiffies; rq->rq_sched_info.pcnt++; } diff -urN oldtree/kernel/sched_staircase.c newtree/kernel/sched_staircase.c --- oldtree/kernel/sched_staircase.c 2006-08-19 07:06:18.000000000 -0400 +++ newtree/kernel/sched_staircase.c 2006-08-19 16:59:37.247148250 -0400 @@ -352,6 +352,7 @@ rq->sched_switch, rq->sched_cnt, rq->sched_goidle, rq->ttwu_cnt, rq->ttwu_local, rq->rq_sched_info.cpu_time, + rq->rq_sched_info.max_delay, rq->rq_sched_info.run_delay, rq->rq_sched_info.pcnt); seq_printf(seq, "\n"); @@ -422,6 +423,7 @@ rq_sched_info_arrive(struct rq *rq, unsigned long delta_jiffies) { if (rq) { + rq->rq_sched_info.max_delay = max(rq->rq_sched_info.max_delay, delta_jiffies); rq->rq_sched_info.run_delay += delta_jiffies; rq->rq_sched_info.pcnt++; } @@ -491,6 +493,7 @@ if (t->sched_info.last_queued) delta_jiffies = now - t->sched_info.last_queued; sched_info_dequeued(t); + t->sched_info.max_delay = max(t->sched_info.max_delay, diff); t->sched_info.run_delay += delta_jiffies; t->sched_info.last_arrival = now; t->sched_info.pcnt++;