summaryrefslogtreecommitdiff
path: root/include/linux/ftrace_event.h
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2010-11-13 06:32:11 +0300
committerSteven Rostedt <rostedt@goodmis.org>2010-11-19 18:18:47 +0300
commit042957801626465492b9428860de39a3cb2a8219 (patch)
treeb0997862babd5e474c500b1b4c522f3a03842106 /include/linux/ftrace_event.h
parent45677454dd6d128608117abe7dcd2bdfdd7cdf72 (diff)
downloadlinux-042957801626465492b9428860de39a3cb2a8219.tar.xz
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>
Diffstat (limited to 'include/linux/ftrace_event.h')
-rw-r--r--include/linux/ftrace_event.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
index 725bf6bd39f7..47e3997f7b5c 100644
--- a/include/linux/ftrace_event.h
+++ b/include/linux/ftrace_event.h
@@ -225,6 +225,10 @@ enum {
FILTER_PTR_STRING,
};
+#define EVENT_STORAGE_SIZE 128
+extern struct mutex event_storage_mutex;
+extern char event_storage[EVENT_STORAGE_SIZE];
+
extern int trace_event_raw_init(struct ftrace_event_call *call);
extern int trace_define_field(struct ftrace_event_call *call, const char *type,
const char *name, int offset, int size,