diff options
| author | Srivatsa Vaddagiri <vatsa@codeaurora.org> | 2014-08-21 15:57:22 +0530 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:00:49 -0700 |
| commit | 977dc392f77522559697cbedfb2d48ad7be96aec (patch) | |
| tree | 240b406af1f27cf0d8bffb16b5c736ef861fafb2 /include/trace | |
| parent | c9d0953c31f18744f29044f041e87033d044b0d7 (diff) | |
sched: window-stats: ftrace event improvements
Add two new ftrace event:
* trace_sched_freq_alert, to log notifications sent
to governor for requesting change in frequency.
* trace_sched_get_busy, to log cpu busytime information returned by
scheduler
Extend existing ftrace events as follows:
* sched_update_task_ravg() event to log irqtime parameter
* sched_migration_update_sum() to log threadid which is being migrated
(and thus responsible for update of curr_runnable_sum and
prev_runnable_sum counters)
Change-Id: Ia68ce0953a2d21d319a1db7f916c51ff6a91557c
Signed-off-by: Srivatsa Vaddagiri <vatsa@codeaurora.org>
Diffstat (limited to 'include/trace')
| -rw-r--r-- | include/trace/events/sched.h | 66 |
1 files changed, 58 insertions, 8 deletions
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 4726fa017f51..02ef9d73fd76 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -220,9 +220,9 @@ TRACE_EVENT(sched_set_boost, TRACE_EVENT(sched_update_task_ravg, TP_PROTO(struct task_struct *p, struct rq *rq, enum task_event evt, - u64 wallclock), + u64 wallclock, u64 irqtime), - TP_ARGS(p, rq, evt, wallclock), + TP_ARGS(p, rq, evt, wallclock, irqtime), TP_STRUCT__entry( __array( char, comm, TASK_COMM_LEN ) @@ -236,6 +236,7 @@ TRACE_EVENT(sched_update_task_ravg, __field( u64, delta_m ) __field( u64, win_start ) __field( u64, delta ) + __field( u64, irqtime ) __field(enum task_event, evt ) __field(unsigned int, demand ) __field(unsigned int, partial_demand ) @@ -260,15 +261,16 @@ TRACE_EVENT(sched_update_task_ravg, __entry->demand = p->ravg.demand; __entry->partial_demand = p->ravg.partial_demand; __entry->sum = p->ravg.sum; + __entry->irqtime = irqtime; ), - TP_printk("wc %llu ws %llu delta %llu event %s cpu %d cur_freq %u cs %u ps %u cur_pid %d task %d (%s) ms %llu delta %llu demand %u partial_demand %u sum %u", + TP_printk("wc %llu ws %llu delta %llu event %s cpu %d cur_freq %u cs %u ps %u cur_pid %d task %d (%s) ms %llu delta %llu demand %u partial_demand %u sum %u irqtime %llu", __entry->wallclock, __entry->win_start, __entry->delta, task_event_names[__entry->evt], __entry->cpu, __entry->cur_freq, __entry->cs, __entry->ps, __entry->cur_pid, __entry->pid, __entry->comm, __entry->mark_start, __entry->delta_m, __entry->demand, __entry->partial_demand, - __entry->sum) + __entry->sum, __entry->irqtime) ); TRACE_EVENT(sched_update_history, @@ -325,26 +327,74 @@ TRACE_EVENT(sched_update_history, TRACE_EVENT(sched_migration_update_sum, - TP_PROTO(struct rq *rq), + TP_PROTO(struct rq *rq, struct task_struct *p), - TP_ARGS(rq), + TP_ARGS(rq, p), TP_STRUCT__entry( __field(int, cpu ) __field(int, cs ) __field(int, ps ) + __field(int, pid ) ), TP_fast_assign( __entry->cpu = cpu_of(rq); __entry->cs = rq->curr_runnable_sum; __entry->ps = rq->prev_runnable_sum; + __entry->pid = p->pid; + ), + + TP_printk("cpu %d: cs %u ps %u pid %d", __entry->cpu, + __entry->cs, __entry->ps, __entry->pid) +); + +#ifdef CONFIG_SCHED_FREQ_INPUT + +TRACE_EVENT(sched_get_busy, + + TP_PROTO(int cpu, u64 load), + + TP_ARGS(cpu, load), + + TP_STRUCT__entry( + __field( int, cpu ) + __field( u64, load ) + ), + + TP_fast_assign( + __entry->cpu = cpu; + __entry->load = load; ), - TP_printk("cpu %d: cs %u ps %u\n", __entry->cpu, - __entry->cs, __entry->ps) + TP_printk("cpu %d load %lld", + __entry->cpu, __entry->load) ); +TRACE_EVENT(sched_freq_alert, + + TP_PROTO(int cpu, unsigned int cur_freq, unsigned int freq_required), + + TP_ARGS(cpu, cur_freq, freq_required), + + TP_STRUCT__entry( + __field( int, cpu ) + __field(unsigned int, cur_freq ) + __field(unsigned int, freq_required ) + ), + + TP_fast_assign( + __entry->cpu = cpu; + __entry->cur_freq = cur_freq; + __entry->freq_required = freq_required; + ), + + TP_printk("cpu %d cur_freq=%u freq_required=%u", + __entry->cpu, __entry->cur_freq, __entry->freq_required) +); + +#endif /* CONFIG_SCHED_FREQ_INPUT */ + #endif /* CONFIG_SCHED_FREQ_INPUT || CONFIG_SCHED_HMP */ /* |
