On Thu, 7 May 2015 16:20:34 -0700 Badhri Jagan Sridharan <bad...@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 <bad...@google.com> Acked-by: Steven Rostedt <rost...@goodmis.org> John, Thomas, you want to pick this up? -- Steve > --- > Changelog since v2: > - changed deferrable flag to unsigned int > > Changelog since v1: > - fixed indentation > - moved deferrable flag checking to tracing code > > include/trace/events/timer.h | 13 +++++++++---- > kernel/time/timer.c | 3 ++- > 2 files changed, 11 insertions(+), 5 deletions(-) > > diff --git a/include/trace/events/timer.h b/include/trace/events/timer.h > index 68c2c20..d7abef1 100644 > --- a/include/trace/events/timer.h > +++ b/include/trace/events/timer.h > @@ -43,15 +43,18 @@ 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, > + unsigned int 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( unsigned int, deferrable ) > ), > > TP_fast_assign( > @@ -59,11 +62,13 @@ 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 > 0 ? 'y':'n') > ); > > /** > diff --git a/kernel/time/timer.c b/kernel/time/timer.c > index 2ece3aa..e5588da 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)); > } > > static inline void debug_deactivate(struct timer_list *timer) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/