aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2009-11-30 19:42:46 -0500
committerSteven Rostedt <rostedt@goodmis.org>2009-11-30 19:42:46 -0500
commitff8045d6fe327e96065c8d87564acaac1c62a34a (patch)
treee75d3170eadf0ca01fe68444816f4e62a8a261fd
parent184146aa5efb5e1fc37ff085efe84edae61cc350 (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.c36
-rw-r--r--parse-events.h8
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
2848static void print_lat_fmt(struct trace_seq *s, void *data, int size __unused) 2848void 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
2883int pevent_data_type(void *data)
2884{
2885 return trace_parse_common_type(data);
2886}
2887
2888struct event *pevent_data_event_from_type(int type)
2889{
2890 return pevent_find_event(type);
2891}
2892
2893int pevent_data_pid(void *data)
2894{
2895 return parse_common_pid(data);
2896}
2897
2898const char *pevent_data_comm_from_pid(int pid)
2899{
2900 const char *comm;
2901
2902 comm = find_cmdline(pid);
2903 return comm;
2904}
2905
2906void 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
2883void pevent_print_event(struct trace_seq *s, 2915void 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);
306struct event * 306struct event *
307pevent_find_event_by_name(const char *sys, const char *name); 307pevent_find_event_by_name(const char *sys, const char *name);
308 308
309void pevent_data_lat_fmt(struct trace_seq *s, void *data, int size __unused);
310int pevent_data_type(void *data);
311struct event *pevent_data_event_from_type(int type);
312int pevent_data_pid(void *data);
313const char *pevent_data_comm_from_pid(int pid);
314void 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 */
311void pevent_print_funcs(void); 319void pevent_print_funcs(void);