tracing/events: Show real number in array fields
authorSteven Rostedt <srostedt@redhat.com>
Sat, 13 Nov 2010 03:32:11 +0000 (22:32 -0500)
committerSteven Rostedt <rostedt@goodmis.org>
Fri, 19 Nov 2010 15:18:47 +0000 (10:18 -0500)
commit042957801626465492b9428860de39a3cb2a8219
treeb0997862babd5e474c500b1b4c522f3a03842106
parent45677454dd6d128608117abe7dcd2bdfdd7cdf72
tracing/events: Show real number in array fields

Currently we have in something like the sched_switch event:

  field:char prev_comm[TASK_COMM_LEN]; offset:12; size:16; signed:1;

When a userspace tool such as perf tries to parse this, the
TASK_COMM_LEN is meaningless. This is done because the TRACE_EVENT() macro
simply uses a #len to show the string of the length. When the length is
an enum, we get a string that means nothing for tools.

By adding a static buffer and a mutex to protect it, we can store the
string into that buffer with snprintf and show the actual number.
Now we get:

  field:char prev_comm[16];       offset:12;      size:16;        signed:1;

Something much more useful.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/linux/ftrace_event.h
include/trace/ftrace.h
kernel/trace/trace_events.c
kernel/trace/trace_export.c