diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/sched_fair.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 471fa281f5e0..2ff850f90d1e 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
@@ -546,6 +546,13 @@ update_stats_wait_end(struct cfs_rq *cfs_rq, struct sched_entity *se) | |||
546 | schedstat_set(se->wait_sum, se->wait_sum + | 546 | schedstat_set(se->wait_sum, se->wait_sum + |
547 | rq_of(cfs_rq)->clock - se->wait_start); | 547 | rq_of(cfs_rq)->clock - se->wait_start); |
548 | schedstat_set(se->wait_start, 0); | 548 | schedstat_set(se->wait_start, 0); |
549 | |||
550 | #ifdef CONFIG_SCHEDSTATS | ||
551 | if (entity_is_task(se)) { | ||
552 | trace_sched_stat_wait(task_of(se), | ||
553 | rq_of(cfs_rq)->clock - se->wait_start); | ||
554 | } | ||
555 | #endif | ||
549 | } | 556 | } |
550 | 557 | ||
551 | static inline void | 558 | static inline void |
@@ -636,8 +643,10 @@ static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se) | |||
636 | se->sleep_start = 0; | 643 | se->sleep_start = 0; |
637 | se->sum_sleep_runtime += delta; | 644 | se->sum_sleep_runtime += delta; |
638 | 645 | ||
639 | if (tsk) | 646 | if (tsk) { |
640 | account_scheduler_latency(tsk, delta >> 10, 1); | 647 | account_scheduler_latency(tsk, delta >> 10, 1); |
648 | trace_sched_stat_sleep(tsk, delta); | ||
649 | } | ||
641 | } | 650 | } |
642 | if (se->block_start) { | 651 | if (se->block_start) { |
643 | u64 delta = rq_of(cfs_rq)->clock - se->block_start; | 652 | u64 delta = rq_of(cfs_rq)->clock - se->block_start; |
@@ -655,6 +664,7 @@ static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se) | |||
655 | if (tsk->in_iowait) { | 664 | if (tsk->in_iowait) { |
656 | se->iowait_sum += delta; | 665 | se->iowait_sum += delta; |
657 | se->iowait_count++; | 666 | se->iowait_count++; |
667 | trace_sched_stat_iowait(tsk, delta); | ||
658 | } | 668 | } |
659 | 669 | ||
660 | /* | 670 | /* |