Prev: platform_bus: allow custom extensions to system PM methods
Next: [PATCH 0/3] add support for Janz MODULbus devices
From: Chase Douglas on 18 Mar 2010 13:00 On Thu, Mar 18, 2010 at 10:56 AM, Steven Rostedt <rostedt(a)goodmis.org> wrote: > [ Expanded the Cc list ] > > On Thu, 2010-03-18 at 09:48 -0400, Chase Douglas wrote: >> The tracing_off_event() function calls tracing_off() to stop tracing >> when an event occurs. By default, only BUG-type events stop tracing, >> while WARNING type events do not. This is controlled through the >> tracing_off={none,warn,bug} commandline parameter. >> >> Call this function from bug and warning event handlers to enable a user >> to debug their kernel by starting a trace, hitting an event, and then >> retrieving trace info knowing that the trace was stopped right after the >> event was hit. >> >> Signed-off-by: Chase Douglas <chase.douglas(a)canonical.com> >> --- >> �include/linux/kernel.h � � | � �5 +++++ >> �kernel/trace/ring_buffer.c | � 34 ++++++++++++++++++++++++++++++++++ >> �2 files changed, 39 insertions(+), 0 deletions(-) >> >> diff --git a/include/linux/kernel.h b/include/linux/kernel.h >> index 7f07074..107091f 100644 >> --- a/include/linux/kernel.h >> +++ b/include/linux/kernel.h >> @@ -478,16 +478,21 @@ static inline char *pack_hex_byte(char *buf, u8 byte) >> � * >> � * Most likely, you want to use tracing_on/tracing_off. >> � */ >> +#define TRACE_EVENT_BUG 0 >> +#define TRACE_EVENT_WARN 1 > > This should probably be an enum. > >> + >> �#ifdef CONFIG_RING_BUFFER >> �void tracing_on(void); >> �void tracing_off(void); >> �/* trace_off_permanent stops recording with no way to bring it back */ >> �void tracing_off_permanent(void); >> +void tracing_off_event(long event); >> �int tracing_is_on(void); >> �#else >> �static inline void tracing_on(void) { } >> �static inline void tracing_off(void) { } >> �static inline void tracing_off_permanent(void) { } >> +static inline void tracing_off_event(long event) { } >> �static inline int tracing_is_on(void) { return 0; } >> �#endif >> �#ifdef CONFIG_TRACING >> diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c >> index 0287f9f..b148862 100644 >> --- a/kernel/trace/ring_buffer.c >> +++ b/kernel/trace/ring_buffer.c >> @@ -193,6 +193,40 @@ void tracing_off_permanent(void) >> � � � set_bit(RB_BUFFERS_DISABLED_BIT, &ring_buffer_flags); >> �} >> >> +static long tracing_event_mask = TRACE_EVENT_BUG; > > That's a bad name. It does not seem to be a mask but seems to be a > control setting. Maybe call it tracing_event_off_ctrl ? I'll fix these two things up and resend. Thanks, Chase -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |