diff options
author | Steven Rostedt <srostedt@redhat.com> | 2009-11-30 19:42:46 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2009-11-30 19:42:46 -0500 |
commit | ff8045d6fe327e96065c8d87564acaac1c62a34a (patch) | |
tree | e75d3170eadf0ca01fe68444816f4e62a8a261fd | |
parent | 184146aa5efb5e1fc37ff085efe84edae61cc350 (diff) |
Add more fine grain parsing of event data
The current pevent_print_event does not give much choice to what
to show or hide. This adds the data more broken out.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r-- | parse-events.c | 36 | ||||
-rw-r--r-- | parse-events.h | 8 |
2 files changed, 42 insertions, 2 deletions
diff --git a/parse-events.c b/parse-events.c index 4ae337c..c831180 100644 --- a/parse-events.c +++ b/parse-events.c | |||
@@ -2845,7 +2845,7 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct event | |||
2845 | } | 2845 | } |
2846 | } | 2846 | } |
2847 | 2847 | ||
2848 | static void print_lat_fmt(struct trace_seq *s, void *data, int size __unused) | 2848 | void pevent_data_lat_fmt(struct trace_seq *s, void *data, int size __unused) |
2849 | { | 2849 | { |
2850 | unsigned int lat_flags; | 2850 | unsigned int lat_flags; |
2851 | unsigned int pc; | 2851 | unsigned int pc; |
@@ -2880,6 +2880,38 @@ static void print_lat_fmt(struct trace_seq *s, void *data, int size __unused) | |||
2880 | trace_seq_printf(s, "%d", lock_depth); | 2880 | trace_seq_printf(s, "%d", lock_depth); |
2881 | } | 2881 | } |
2882 | 2882 | ||
2883 | int pevent_data_type(void *data) | ||
2884 | { | ||
2885 | return trace_parse_common_type(data); | ||
2886 | } | ||
2887 | |||
2888 | struct event *pevent_data_event_from_type(int type) | ||
2889 | { | ||
2890 | return pevent_find_event(type); | ||
2891 | } | ||
2892 | |||
2893 | int pevent_data_pid(void *data) | ||
2894 | { | ||
2895 | return parse_common_pid(data); | ||
2896 | } | ||
2897 | |||
2898 | const char *pevent_data_comm_from_pid(int pid) | ||
2899 | { | ||
2900 | const char *comm; | ||
2901 | |||
2902 | comm = find_cmdline(pid); | ||
2903 | return comm; | ||
2904 | } | ||
2905 | |||
2906 | void pevent_event_info(struct trace_seq *s, struct event *event, | ||
2907 | int cpu, void *data, int size, unsigned long long nsecs) | ||
2908 | { | ||
2909 | if (event->handler) | ||
2910 | event->handler(s, data, size, event, cpu, nsecs); | ||
2911 | else | ||
2912 | pretty_print(s, data, size, event); | ||
2913 | } | ||
2914 | |||
2883 | void pevent_print_event(struct trace_seq *s, | 2915 | void pevent_print_event(struct trace_seq *s, |
2884 | int cpu, void *data, int size, unsigned long long nsecs) | 2916 | int cpu, void *data, int size, unsigned long long nsecs) |
2885 | { | 2917 | { |
@@ -2908,7 +2940,7 @@ void pevent_print_event(struct trace_seq *s, | |||
2908 | if (latency_format) { | 2940 | if (latency_format) { |
2909 | trace_seq_printf(s, "%8.8s-%-5d %3d", | 2941 | trace_seq_printf(s, "%8.8s-%-5d %3d", |
2910 | comm, pid, cpu); | 2942 | comm, pid, cpu); |
2911 | print_lat_fmt(s, data, size); | 2943 | pevent_data_lat_fmt(s, data, size); |
2912 | } else | 2944 | } else |
2913 | trace_seq_printf(s, "%16s-%-5d [%03d]", comm, pid, cpu); | 2945 | trace_seq_printf(s, "%16s-%-5d [%03d]", comm, pid, cpu); |
2914 | 2946 | ||
diff --git a/parse-events.h b/parse-events.h index 5e9fe63..ea6fe20 100644 --- a/parse-events.h +++ b/parse-events.h | |||
@@ -306,6 +306,14 @@ struct event *pevent_find_event(int id); | |||
306 | struct event * | 306 | struct event * |
307 | pevent_find_event_by_name(const char *sys, const char *name); | 307 | pevent_find_event_by_name(const char *sys, const char *name); |
308 | 308 | ||
309 | void pevent_data_lat_fmt(struct trace_seq *s, void *data, int size __unused); | ||
310 | int pevent_data_type(void *data); | ||
311 | struct event *pevent_data_event_from_type(int type); | ||
312 | int pevent_data_pid(void *data); | ||
313 | const char *pevent_data_comm_from_pid(int pid); | ||
314 | void pevent_event_info(struct trace_seq *s, struct event *event, | ||
315 | int cpu, void *data, int size, unsigned long long nsecs); | ||
316 | |||
309 | 317 | ||
310 | /* for debugging */ | 318 | /* for debugging */ |
311 | void pevent_print_funcs(void); | 319 | void pevent_print_funcs(void); |