Re: [PATCH 4/5 v3] tracing/core: drop the old ftrace_printk implementation in favour of ftrace_bprintk




* Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:



On Fri, 6 Mar 2009, Frederic Weisbecker wrote:

Impact: faster and lighter tracing

Now that we have ftrace_bprintk() which is faster and consume lesser
memory than ftrace_printk() and has the same purpose, we can now drop
the old implementation in favour of the binary one from ftrace_bprintk(),
which means we move all the implementation of ftrace_bprintk() to
ftrace_printk(), so the Api doesn't change except that we must now use
trace_seq_bprintk() to print the TRACE_PRINT entries.

Some changes result of this:

- Previously, ftrace_bprintk depended of a single tracer and couldn't
work without. This tracer has been dropped and the whole implementation
of ftrace_printk() (like the module formats management) is now integrated
in the tracing core (comes with CONFIG_TRACING), though we keep the file
trace_printk (previously trace_bprintk.c) where we can find the module
management. Thus we don't overflow trace.c

- changes some parts to use trace_seq_bprintk() to print TRACE_PRINT entries.

- change a bit ftrace_printk/ftrace_vprintk macros to support non-builtin formats
constants, and fix 'const' qualifiers warnings. But this is all transparent for
developers.

- etc...

V2:

- Rebase against last changes
- Fix mispell on the changelog

V3:

- Rebase against last changes (moving ftrace_printk() to kernel.h)

Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>

Very nice Frederic!

For some reason I'm still missing patch 1. Perhaps it decided to take the
scenic route ;-)

diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index 0f5077f..6140922 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -20,7 +20,6 @@ enum trace_type {
TRACE_WAKE,
TRACE_STACK,
TRACE_PRINT,
- TRACE_BPRINTK,
TRACE_SPECIAL,
TRACE_MMIO_RW,
TRACE_MMIO_MAP,
@@ -120,16 +119,10 @@ struct userstack_entry {
*/
struct print_entry {
struct trace_entry ent;
- unsigned long ip;
+ unsigned long ip;
int depth;
- char buf[];
-};
-


Note, this is going to break my recent patch that exports the
internal ftrace events. That's OK, I'll fix it after Ingo
pulls it in.

Ingo,

Would you prefer that I pull these patches in and then fix the
code, and let you pull it from me?

i've put them into a separate branch forked off
tip:tracing/ftrace: tip:tracing/printk. The two vsprintf patches
are in tip:core/printk and merged into tracing/ftrace.

You can thus apply your current enhancements without any
interaction with me - and merge tracing/printk into the
tip:tracing/ftrace branch on your own schedule, ok?

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages