aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched_fair.c
diff options
context:
space:
mode:
authorArjan van de Ven <arjan@linux.intel.com>2009-07-20 14:26:58 -0400
committerIngo Molnar <mingo@elte.hu>2009-09-02 02:44:08 -0400
commit8f0dfc34e9b323a028c2ec41abb7e9de477b7a94 (patch)
treefa7e44d9ad3eb22517f0724e71f9812f71a16ae2 /kernel/sched_fair.c
parentf14eff1cc2f418a7c5e23aedc6a1bdca3343b871 (diff)
sched: Provide iowait counters
For counting how long an application has been waiting for (disk) IO, there currently is only the HZ sample driven information available, while for all other counters in this class, a high resolution version is available via CONFIG_SCHEDSTATS. In order to make an improved bootchart tool possible, we also need a higher resolution version of the iowait time. This patch below adds this scheduler statistic to the kernel. Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> LKML-Reference: <4A64B813.1080506@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_fair.c')
-rw-r--r--kernel/sched_fair.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index 342000b31ad6..471fa281f5e0 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -652,6 +652,11 @@ static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se)
652 se->sum_sleep_runtime += delta; 652 se->sum_sleep_runtime += delta;
653 653
654 if (tsk) { 654 if (tsk) {
655 if (tsk->in_iowait) {
656 se->iowait_sum += delta;
657 se->iowait_count++;
658 }
659
655 /* 660 /*
656 * Blocking time is in units of nanosecs, so shift by 661 * Blocking time is in units of nanosecs, so shift by
657 * 20 to get a milliseconds-range estimation of the 662 * 20 to get a milliseconds-range estimation of the