Messages in this thread | | | Date | Mon, 1 Jul 2013 15:13:11 +0530 | From | Kamalesh Babulal <> | Subject | Re: [PATCH 1/2] sched: add trace events for task and rq usage tracking |
| |
* Lei Wen <leiwen@marvell.com> [2013-07-01 15:10:32]:
> Since we could track task in the entity level now, we may want to > investigate tasks' running status by recording the trace info, so that > could make some tuning if needed. > > Signed-off-by: Lei Wen <leiwen@marvell.com> > --- > include/trace/events/sched.h | 73 ++++++++++++++++++++++++++++++++++++++++++ > kernel/sched/fair.c | 29 +++++++++++++++-- > 2 files changed, 100 insertions(+), 2 deletions(-)
[...]
> > +TRACE_EVENT(sched_cfs_rq_runnable_load, > + > + TP_PROTO(int cpu, unsigned long load, unsigned long total), > + > + TP_ARGS(cpu, load, total), > + > + TP_STRUCT__entry( > + __field(int, cpu) > + __field(unsigned long, load) > + __field(unsigned long, total) > + ), > + > + TP_fast_assign( > + __entry->cpu = cpu; > + __entry->load = load; > + __entry->total = total; > + ), > + > + TP_printk("cpu=%d avg=%lu total=%lu", > + __entry->cpu, > + __entry->load, > + __entry->total) > +); > + > +TRACE_EVENT(sched_cfs_rq_blocked_load, > + > + TP_PROTO(int cpu, unsigned long load, unsigned long total), > + > + TP_ARGS(cpu, load, total), > + > + TP_STRUCT__entry( > + __field(int, cpu) > + __field(unsigned long, load) > + __field(unsigned long, total) > + ), > + > + TP_fast_assign( > + __entry->cpu = cpu; > + __entry->load = load; > + __entry->total = total; > + ), > + > + TP_printk("cpu=%d avg=%lu total=%lu", > + __entry->cpu, > + __entry->load, > + __entry->total) > +); > + > #endif /* _TRACE_SCHED_H */
above trace points are same and be folded using EVENT_CLASS:
+DECLARE_EVENT_CLASS(sched_cfs_rq_load_contri_template, + + TP_PROTO(int cpu, unsigned long load, unsigned long total), + + TP_ARGS(cpu, load, total), + + TP_STRUCT__entry( + __field(int, cpu) + __field(unsigned long, load) + __field(unsigned long, total) + ), + + TP_fast_assign( + __entry->cpu = cpu; + __entry->load = load; + __entry->total = total; + ), + + TP_printk("cpu=%d avg=%lu total=%lu", + __entry->cpu, + __entry->load, + __entry->total) +); + +DEFINE_EVENT(sched_cfs_rq_load_contri_template, sched_cfs_rq_runnable_load, + TP_PROTO(int cpu, unsigned long load, unsigned long total), + TP_ARGS(cpu, load, total)); + +DEFINE_EVENT(sched_cfs_rq_load_contri_template, sched_cfs_rq_blocked_load, + TP_PROTO(int cpu, unsigned long load, unsigned long total), + TP_ARGS(cpu, load, total)); +
| |