login
Login
/
Register
Search
Search this site:
Forums
News
Blogs
Features
Site
Home
»
Mailing list archives
»
linux-kernel
»
2010
»
March
»
22
Re: [PATCH 1/3 v3] Add tracing_off_event() to stop tracing when a bug or warning occur
view
thread
Previous message: [
thread
] [
date
] [
author
]
Next message: [thread] [
date
] [
author
]
[view in full thread]
From: Steven Rostedt
Subject:
Re: [PATCH 1/3 v3] Add tracing_off_event() to stop tracing when a bug or warning occur
Date: Monday, March 22, 2010 - 12:45 pm
On Mon, 2010-03-22 at 14:48 -0400, Chase Douglas wrote:
quoted text
> 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@canonical.com>
Please run the code through checkpatch.pl
quoted text
> --- > include/linux/kernel.h | 7 +++++++ > kernel/trace/ring_buffer.c | 35 +++++++++++++++++++++++++++++++++++ > 2 files changed, 42 insertions(+), 0 deletions(-) > > diff --git a/include/linux/kernel.h b/include/linux/kernel.h > index 7f07074..a19d545 100644 > --- a/include/linux/kernel.h > +++ b/include/linux/kernel.h > @@ -478,16 +478,23 @@ static inline char *pack_hex_byte(char *buf, u8 byte) > * > * Most likely, you want to use tracing_on/tracing_off. > */ > +typedef enum { > + TRACE_EVENT_BUG = 0, > + TRACE_EVENT_WARN, > +} trace_event_t;
No need for a typedef here.
quoted text
> + > #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(trace_event_t 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(trace_event_t 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..6a5f535 100644 > --- a/kernel/trace/ring_buffer.c > +++ b/kernel/trace/ring_buffer.c > @@ -193,6 +193,41 @@ void tracing_off_permanent(void) > set_bit(RB_BUFFERS_DISABLED_BIT, &ring_buffer_flags); > } > > +static trace_event_t tracing_off_event_ctrl = TRACE_EVENT_BUG; > + > +/** > + * tracing_off_event - turn off tracing depending on event type > + * @event: type of event that occurred > + * > + * This function checks the event type to determine whether tracing should be > + * disabled. Useful for disabling tracing on bugs or warnings. > + */ > +void tracing_off_event(trace_event_t event) > +{ > + if (event <= tracing_off_event_ctrl) > + tracing_off(); > +} > +EXPORT_SYMBOL_GPL(tracing_off_event); > + > +static int __init tracing_off_event_setup(char *str) > +{ > + if (!strcmp("none", str)) > + tracing_off_event_ctrl = -1; > + else if (!strcmp("bug", str)) > + tracing_off_event_ctrl = TRACE_EVENT_BUG; > + else if (!strcmp("warn", str)) > + tracing_off_event_ctrl = TRACE_EVENT_WARN; > + else > + {
Must be "else {" -- Steve
quoted text
> + printk(KERN_NOTICE "Invalid value passed for tracing_off parameter\n"); > + return 1; > + } > + > + return 0; > +} > + > +__setup("tracing_off=", tracing_off_event_setup); > + > /** > * tracing_is_on - show state of ring buffers enabled > */
--
unsubscribe notice
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/
Previous message: [
thread
] [
date
] [
author
]
Next message: [thread] [
date
] [
author
]
Messages in current thread:
[PATCH 1/3 v3] Add tracing_off_event() to stop tracing whe ...
, Chase Douglas
, (Mon Mar 22, 11:48 am)
Re: [PATCH 1/3 v3] Add tracing_off_event() to stop tracing ...
, Steven Rostedt
, (Mon Mar 22, 12:45 pm)
Navigation
Mailing list archives
Recent posts
Popular discussions
linux-kernel
:
Fortier,Vincent [Montreal]
2.6.21.5 june 30th to july 1st date hang?
Jeff Dike
[ PATCH 2/6 ] UML - Formatting fixes around os_{read_write}_file callers
Liam Girdwood
[PATCH 07/13] regulator: regulator test harness
Oleg Nesterov
Re: Getting the new RxRPC patches upstream
Stefan Seyfried
Re: 2.6.19-rc5: grub is much slower resuming from suspend-to-disk than in 2.6.18
linux-netdev
:
Arnaud Ebalard
Re: [REGRESSION,BISECTED] MIPv6 support broken by f4f914b58019f0
Jan Engelhardt
Re: [PATCH iptables] extension: add xt_cpu match
Jarek Poplawski
Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock().
Sebastian Andrzej Siewior
[PATCH 8/8] net/emergency: remove locking from reycling pool if emergncy pools are...
David Miller
Re: [PATCH] qlcnic: dont assume NET_IP_ALIGN is 2
git
:
Jakub Narebski
Re: git on MacOSX and files with decomposed utf-8 file names
Brandon Casey
Re: Thunderbird and patches (was Re: [PATCH v2] Enable setting attach as the def...
Christian Couder
[PATCH 1/3] rev-parse: add test script for "--verify"
Ramkumar Ramachandra
Re: [GSoC update] git-remote-svn: The final one
Junio C Hamano
Re: git-rm isn't the inverse action of git-add
openbsd-misc
:
Joachim Schipper
Re: UVC Webcams
Florin Andrei
SOLVED [was: firewall is very slow, something's wrong]
Todd Alan Smith
Re: Microsoft gets the Most Secure Operating Systems award
Neal Hogan
Re: Need Advice: Thinkpad T60 or T61?
Sam Fourman Jr.
Re: Real men don't attack straw men
git-commits-head
:
Linux Kernel Mailing List
ACPI: Disable ARB_DISABLE on platforms where it is not needed
Linux Kernel Mailing List
m68knommu: add read_barrier_depends() and irqs_disabled_flags()
Linux Kernel Mailing List
[MTD] Add mtd panic_write function pointer
Linux Kernel Mailing List
[ARM] pxa: remove duplicate select statements from Kconfig
Linux Kernel Mailing List
mlx4_core: Don't read reserved fields in mlx4_QUERY_ADAPTER()
Colocation donated by:
Syndicate