[ltt-dev] [PATCH 2/1] tracepoints-panic

Mathieu Desnoyers mathieu.desnoyers at polymtl.ca
Wed Dec 17 23:14:02 EST 2008


* Zhaolei (zhaolei at cn.fujitsu.com) wrote:
> Instrumentation of panic related events : now include panic event only.
> It is useful for build flight-recorder program based on lttng infrastructure.
> 
> Signed-off-by: Zhao lei <zhaolei at cn.fujitsu.com>
> ---
>  include/trace/panic.h |   10 ++++++++++
>  kernel/panic.c        |    7 +++++++
>  2 files changed, 17 insertions(+), 0 deletions(-)
>  create mode 100644 include/trace/panic.h
> 
> diff --git a/include/trace/panic.h b/include/trace/panic.h
> new file mode 100644
> index 0000000..eede4ca
> --- /dev/null
> +++ b/include/trace/panic.h
> @@ -0,0 +1,10 @@
> +#ifndef _TRACE_PANIC_H
> +#define _TRACE_PANIC_H
> +
> +#include <linux/tracepoint.h>
> +
> +DECLARE_TRACE(panic_panic,
> +	TPPROTO(const char *fmt, va_list args),
> +	TPARGS(fmt, args));
> +

Interesting idea. Maybe kernel_panic would be more appropriate, in
include/trace/kernel.h ?

Mathieu

> +#endif
> diff --git a/kernel/panic.c b/kernel/panic.c
> index 12c5a0a..33b4440 100644
> --- a/kernel/panic.c
> +++ b/kernel/panic.c
> @@ -21,6 +21,9 @@
>  #include <linux/debug_locks.h>
>  #include <linux/random.h>
>  #include <linux/kallsyms.h>
> +#include <trace/panic.h>
> +
> +DEFINE_TRACE(panic_panic);
>  
>  int panic_on_oops;
>  int tainted;
> @@ -68,6 +71,10 @@ NORET_TYPE void panic(const char * fmt, ...)
>  	unsigned long caller = (unsigned long) __builtin_return_address(0);
>  #endif
>  
> +	va_start(args, fmt);
> +	trace_panic_panic(fmt, args);
> +	va_end(args);
> +
>  	/*
>  	 * It's possible to come here directly from a panic-assertion and not
>  	 * have preempt disabled. Some functions called from here want
> -- 
> 1.5.5.3
> 
> 

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68




More information about the lttng-dev mailing list