diff options
author | Juri Lelli <juri.lelli@arm.com> | 2015-11-09 12:07:48 +0000 |
---|---|---|
committer | Punit Agrawal <punit.agrawal@arm.com> | 2016-03-21 14:57:42 +0000 |
commit | d39b657251494af6718b38aa0e5343b499cd6459 (patch) | |
tree | 606023cfd0327bffd5eb2e5f9417dac5a9332653 | |
parent | 1b79543f25c0047013e8e6b64df9f01e248de8ea (diff) |
DEBUG: sched: add tracepoint for CPU load/util signals
Signed-off-by: Juri Lelli <juri.lelli@arm.com>
-rw-r--r-- | include/trace/events/sched.h | 25 | ||||
-rw-r--r-- | kernel/sched/fair.c | 1 |
2 files changed, 26 insertions, 0 deletions
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 99f3e648c197..f58760c2f712 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -629,6 +629,31 @@ TRACE_EVENT(sched_load_avg_task, (u32)__entry->util_sum, (u32)__entry->period_contrib) ); + +/* + * Tracepoint for accounting sched averages for cpus. + */ +TRACE_EVENT(sched_load_avg_cpu, + + TP_PROTO(int cpu, struct cfs_rq *cfs_rq), + + TP_ARGS(cpu, cfs_rq), + + TP_STRUCT__entry( + __field( int, cpu ) + __field( unsigned long, load_avg ) + __field( unsigned long, util_avg ) + ), + + TP_fast_assign( + __entry->cpu = cpu; + __entry->load_avg = cfs_rq->avg.load_avg; + __entry->util_avg = cfs_rq->avg.util_avg; + ), + + TP_printk("cpu=%d load_avg=%lu util_avg=%lu", + __entry->cpu, __entry->load_avg, __entry->util_avg) +); #endif /* _TRACE_SCHED_H */ /* This part must be outside protection */ diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 8cdb4e5592f9..b5ea9ec335d8 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -2734,6 +2734,7 @@ static inline void update_load_avg(struct sched_entity *se, int update_tg) if (entity_is_task(se)) trace_sched_load_avg_task(task_of(se), &se->avg); + trace_sched_load_avg_cpu(cpu, cfs_rq); } static void attach_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *se) |