Messages in this thread Patch in this message | | | Date | Tue, 5 May 2015 21:50:59 -0400 | From | Steven Rostedt <> | Subject | Re: [PATCH] tracing: timer: Add deferrable flag to timer_start |
| |
On Tue, 5 May 2015 18:04:53 -0700 Badhri Jagan Sridharan <badhri@google.com> wrote:
> The timer_start event now shows whether the timer is > deferrable in case of a low-res timer. The debug_activate > function now includes deferrable flag while calling > trace_timer_start event. > > Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com> > --- > include/trace/events/timer.h | 11 +++++++---- > kernel/time/timer.c | 3 ++- > 2 files changed, 9 insertions(+), 5 deletions(-) > > diff --git a/include/trace/events/timer.h b/include/trace/events/timer.h > index 68c2c20..9b15f89 100644 > --- a/include/trace/events/timer.h > +++ b/include/trace/events/timer.h > @@ -43,15 +43,17 @@ DEFINE_EVENT(timer_class, timer_init, > */ > TRACE_EVENT(timer_start, > > - TP_PROTO(struct timer_list *timer, unsigned long expires), > + TP_PROTO(struct timer_list *timer, > + unsigned long expires, char deferrable), > > - TP_ARGS(timer, expires), > + TP_ARGS(timer, expires, deferrable), > > TP_STRUCT__entry( > __field( void *, timer ) > __field( void *, function ) > __field( unsigned long, expires ) > __field( unsigned long, now ) > + __field(char, deferrable)
Fix indentation here too.
> ), > > TP_fast_assign( > @@ -59,11 +61,12 @@ TRACE_EVENT(timer_start, > __entry->function = timer->function; > __entry->expires = expires; > __entry->now = jiffies; > + __entry->deferrable = deferrable; > ), > > - TP_printk("timer=%p function=%pf expires=%lu [timeout=%ld]", > + TP_printk("timer=%p function=%pf expires=%lu [timeout=%ld] defer=%c", > __entry->timer, __entry->function, __entry->expires, > - (long)__entry->expires - __entry->now) > + (long)__entry->expires - __entry->now, __entry->deferrable)
Should pass in tbase_get_deferrable(), and do the characters here (slight optimization).
__entry->deferrable > 0 ? 'y' : 'n')
> ); > > /** > diff --git a/kernel/time/timer.c b/kernel/time/timer.c > index 2ece3aa..2b906b5 100644 > --- a/kernel/time/timer.c > +++ b/kernel/time/timer.c > @@ -648,7 +648,8 @@ static inline void > debug_activate(struct timer_list *timer, unsigned long expires) > { > debug_timer_activate(timer); > - trace_timer_start(timer, expires); > + trace_timer_start(timer, expires, > + tbase_get_deferrable(timer->base) > 0 ? 'y' : 'n');
Then this should just be;
trace_timer_start(timer, expires, tbase_get_deferrable(timer->base));
-- Steve
> } > > static inline void debug_deactivate(struct timer_list *timer)
| |