diff options
author | Steven Rostedt <srostedt@redhat.com> | 2009-03-05 21:35:29 -0500 |
---|---|---|
committer | Steven Rostedt <srostedt@redhat.com> | 2009-03-05 21:46:44 -0500 |
commit | 770cb24345c0f6e0d47bd2b94aa6d67bea6f8b54 (patch) | |
tree | ec76651c686c02249c1455446801cf2b9d823879 /kernel/trace/trace_events.c | |
parent | 33b0c229e3abeae00493ed1d6f0b07191977a0a2 (diff) |
tracing: add format files for ftrace default entries
Impact: allow user apps to read binary format of basic ftrace entries
Currently, only defined raw events export their formats so a binary
reader can parse them. There's no reason that the default ftrace entries
can't export their formats.
This patch adds a subsystem called "ftrace" in the events directory
that includes the ftrace entries for basic ftrace recorded items.
These only have three files in the events directory:
type : printf
available_types : printf
format : format for the event entry
For example:
# cat /debug/tracing/events/ftrace/wakeup/format
name: wakeup
ID: 3
format:
field:unsigned char type; offset:0; size:1;
field:unsigned char flags; offset:1; size:1;
field:unsigned char preempt_count; offset:2; size:1;
field:int pid; offset:4; size:4;
field:int tgid; offset:8; size:4;
field:unsigned int prev_pid; offset:12; size:4;
field:unsigned char prev_prio; offset:16; size:1;
field:unsigned char prev_state; offset:17; size:1;
field:unsigned int next_pid; offset:20; size:4;
field:unsigned char next_prio; offset:24; size:1;
field:unsigned char next_state; offset:25; size:1;
field:unsigned int next_cpu; offset:28; size:4;
print fmt: "%u:%u:%u ==+ %u:%u:%u [%03u]"
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Diffstat (limited to 'kernel/trace/trace_events.c')
-rw-r--r-- | kernel/trace/trace_events.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index 210e71ff82d..4488d90e75e 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c | |||
@@ -656,11 +656,13 @@ event_create_dir(struct ftrace_event_call *call, struct dentry *d_events) | |||
656 | return -1; | 656 | return -1; |
657 | } | 657 | } |
658 | 658 | ||
659 | entry = debugfs_create_file("enable", 0644, call->dir, call, | 659 | if (call->regfunc) { |
660 | &ftrace_enable_fops); | 660 | entry = debugfs_create_file("enable", 0644, call->dir, call, |
661 | if (!entry) | 661 | &ftrace_enable_fops); |
662 | pr_warning("Could not create debugfs " | 662 | if (!entry) |
663 | "'%s/enable' entry\n", call->name); | 663 | pr_warning("Could not create debugfs " |
664 | "'%s/enable' entry\n", call->name); | ||
665 | } | ||
664 | 666 | ||
665 | /* Only let type be writable, if we can change it */ | 667 | /* Only let type be writable, if we can change it */ |
666 | entry = debugfs_create_file("type", | 668 | entry = debugfs_create_file("type", |