perf evsel: Cache associated event_format
[deliverable/linux.git] / tools / perf / util / trace-event-parse.c
index 0715c843c2e73ad6fc61832854cb33571732a73f..12088348ac02f0861c8ff6dd7b0ceb3f8cee40d1 100644 (file)
@@ -167,20 +167,11 @@ unsigned long long read_size(struct pevent *pevent, void *ptr, int size)
        return pevent_read_number(pevent, ptr, size);
 }
 
-void print_trace_event(struct pevent *pevent, int cpu, void *data, int size)
+void event_format__print(struct event_format *event,
+                        int cpu, void *data, int size)
 {
-       struct event_format *event;
        struct pevent_record record;
        struct trace_seq s;
-       int type;
-
-       type = trace_parse_common_type(pevent, data);
-
-       event = pevent_find_event(pevent, type);
-       if (!event) {
-               warning("ug! no event found for type %d", type);
-               return;
-       }
 
        memset(&record, 0, sizeof(record));
        record.cpu = cpu;
@@ -192,6 +183,19 @@ void print_trace_event(struct pevent *pevent, int cpu, void *data, int size)
        trace_seq_do_printf(&s);
 }
 
+void print_trace_event(struct pevent *pevent, int cpu, void *data, int size)
+{
+       int type = trace_parse_common_type(pevent, data);
+       struct event_format *event = pevent_find_event(pevent, type);
+
+       if (!event) {
+               warning("ug! no event found for type %d", type);
+               return;
+       }
+
+       event_format__print(event, cpu, data, size);
+}
+
 void print_event(struct pevent *pevent, int cpu, void *data, int size,
                 unsigned long long nsecs, char *comm)
 {
This page took 0.04375 seconds and 5 git commands to generate.