Re: [PATCH 06/10] tracing: add print_fmt field

From: Lai Jiangshan
Date: Thu Dec 10 2009 - 20:17:58 EST


Steven Rostedt wrote:
> On Wed, 2009-12-09 at 15:15 +0800, Lai Jiangshan wrote:
>> Add print_fmt field and the initialization codes.
>> It will be used for replacing ->show_format().
>
> This change log is very lacking. I don't even know what this patch is
> doing. I'm guessing other patches will depend on it. But this patch
> alone should have a change log that describes the goal that will happen
> to give it rational.
>
> If I'm bisecting the kernel and I come across this change, I want the
> change log to explain why this change exists, and not have to spend time
> searching the logs for other patches that may depend on this one.
>
>

For a format file

# cat events/irq/irq_handler_entry/format
name: irq_handler_entry
ID: 97
format:

A) ======> name, ID, and a string "format:"

field:unsigned short common_type; offset:0; size:2; signed:0;
field:unsigned char common_flags; offset:2; size:1; signed:0;
field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
field:int common_pid; offset:4; size:4; signed:1;
field:int common_lock_depth; offset:8; size:4; signed:1;

field:int irq; offset:12; size:4; signed:1;
field:__data_loc char[] name; offset:16; size:4; signed:1;

B) ========> fields.

print fmt: "irq=%d name=%s", REC->irq, __get_str(name)

C) ========> string "print fmt: " and the print format after it.

How my patches work:
For B)
Ensure all fields are add into struct ftrace_event_call->fields. (patch#4)
Ensure all fields are correct. (patch#5)

For C)
add a print_fmt field (this patch)
init print_fmt carefully (this patch and patch#7 patch#8)

So when we generate format file:
print name
print ID
print string "format:"
use struct ftrace_event_call->fields to print fields
use struct ftrace_event_call->print_fmt to print "print fmt: XXXXXXXXXXX"

Thanks
-- Lai
--
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/