tracing: add trace_bprintk()

Impact: add a generic printk() for tracing, like trace_printk()

trace_bprintk() uses the infrastructure to record events on ring_buffer.

[ fweisbec@gmail.com: ported to latest -tip, made it work if
  !CONFIG_MODULES, never free the format strings from modules
  because we can't keep track of them and conditionnaly create
  the ftrace format strings section (reported by Steven Rostedt) ]

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <1236356510-8381-4-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Lai Jiangshan 2009-03-06 17:21:48 +01:00 • committed by Ingo Molnar
commit 1ba28e02a1
6 changed files with 133 additions and 10 deletions

View file

@ -2158,6 +2158,12 @@ static noinline struct module *load_module(void __user *umod,
&mod->num_tracepoints);
#endif
#ifdef CONFIG_TRACE_BPRINTK
mod->trace_bprintk_fmt_start = section_objs(hdr, sechdrs, secstrings,
"__trace_bprintk_fmt", sizeof(char *),
&mod->num_trace_bprintk_fmt);
#endif
#ifdef CONFIG_MODVERSIONS
if ((mod->num_syms && !mod->crcs)
|| (mod->num_gpl_syms && !mod->gpl_crcs)