Messages in this thread | | | Date | Tue, 05 May 2009 14:53:45 +0800 | From | Li Zefan <> | Subject | Re: [PATCH v3] ftrace: add a tracepoint for __raise_softirq_irqoff() |
| |
> +TRACE_EVENT(irq_softirq_raise,
I think 'softirq_raise' is better.
> + > + TP_PROTO(unsigned int nr), > + > + TP_ARGS(nr), > + > + TP_STRUCT__entry( > + __field( unsigned int, nr ) > + ), > + > + TP_fast_assign( > + __entry->nr = nr; > + ), > + > + TP_printk("softirq=%d action=%s is raised", > + __entry->nr, softirq_to_name[__entry->nr])
"softirq=%d action=%s" is sufficient.
Please see TRACE_EVENT(softirq_entry) and TRACE_EVENT(softirq_exit).
> +); > + > #endif /* _TRACE_IRQ_H */ > > /* This part must be outside protection */ > diff --git a/kernel/softirq.c b/kernel/softirq.c > index b41fb71..bd0546b 100644 > --- a/kernel/softirq.c > +++ b/kernel/softirq.c > @@ -310,6 +310,14 @@ void irq_exit(void) > preempt_enable_no_resched(); > } > > +#ifdef CONFIG_TRACEPOINTS > +inline void __raise_softirq_irqoff(unsigned int nr) > +{ > + trace_irq_softirq_raise(nr); > + or_softirq_pending(1UL << (nr)); > +} > +#endif > + > /* > * This function must run with irqs disabled! > */
| |