From f96a79b3a2b86f2178d83689d81251ee4fdd1706 Mon Sep 17 00:00:00 2001 From: Arjan van de Ven Date: Fri, 25 Jan 2008 21:08:35 +0100 Subject: [PATCH] --- yaml --- r: 76204 b: refs/heads/master c: 6d082592b62689fb91578d0338d04a9f50991990 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/sched.h | 2 ++ trunk/kernel/sched_debug.c | 4 ++++ trunk/kernel/sched_fair.c | 3 +++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index f281021321b2..a39f772e63bc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 286100a6cf1c1f692e5f81d14b364ff12b7662f5 +refs/heads/master: 6d082592b62689fb91578d0338d04a9f50991990 diff --git a/trunk/include/linux/sched.h b/trunk/include/linux/sched.h index 734f6d8f6ed5..df5b24ee80b3 100644 --- a/trunk/include/linux/sched.h +++ b/trunk/include/linux/sched.h @@ -895,6 +895,8 @@ struct sched_entity { #ifdef CONFIG_SCHEDSTATS u64 wait_start; u64 wait_max; + u64 wait_count; + u64 wait_sum; u64 sleep_start; u64 sleep_max; diff --git a/trunk/kernel/sched_debug.c b/trunk/kernel/sched_debug.c index 9e5de098d471..4b5e24cf2f4a 100644 --- a/trunk/kernel/sched_debug.c +++ b/trunk/kernel/sched_debug.c @@ -300,6 +300,8 @@ void proc_sched_show_task(struct task_struct *p, struct seq_file *m) PN(se.exec_max); PN(se.slice_max); PN(se.wait_max); + PN(se.wait_sum); + P(se.wait_count); P(sched_info.bkl_count); P(se.nr_migrations); P(se.nr_migrations_cold); @@ -367,6 +369,8 @@ void proc_sched_set_task(struct task_struct *p) { #ifdef CONFIG_SCHEDSTATS p->se.wait_max = 0; + p->se.wait_sum = 0; + p->se.wait_count = 0; p->se.sleep_max = 0; p->se.sum_sleep_runtime = 0; p->se.block_max = 0; diff --git a/trunk/kernel/sched_fair.c b/trunk/kernel/sched_fair.c index 45ff4e9411e0..72e25c7a3a18 100644 --- a/trunk/kernel/sched_fair.c +++ b/trunk/kernel/sched_fair.c @@ -385,6 +385,9 @@ update_stats_wait_end(struct cfs_rq *cfs_rq, struct sched_entity *se) { schedstat_set(se->wait_max, max(se->wait_max, rq_of(cfs_rq)->clock - se->wait_start)); + schedstat_set(se->wait_count, se->wait_count + 1); + schedstat_set(se->wait_sum, se->wait_sum + + rq_of(cfs_rq)->clock - se->wait_start); schedstat_set(se->wait_start, 0); }