aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/session.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2015-03-03 10:20:38 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2015-03-12 11:39:46 -0400
commitd10eb1eb76a86266354ecab6e42c1606e3b8bc4c (patch)
treee16a15de7df6ff556375effce15d5ece48c809bd /tools/perf/util/session.c
parentb7b61cbebd789a3dbca522e3fdb727fe5c95593f (diff)
perf ordered_events: Allow tools to specify a deliver method
So that we can simplify the deliver method to pass just: (ordered_events, ordered_event, sample); Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Borislav Petkov <bp@suse.de> Cc: David Ahern <dsahern@gmail.com> Cc: Don Zickus <dzickus@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-j0s4bpxs5qza5tnkvjwom9rw@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/session.c')
-rw-r--r--tools/perf/util/session.c30
1 files changed, 23 insertions, 7 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index c6dd89f62fc4..e2f318a3f17a 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -16,6 +16,12 @@
16#include "perf_regs.h" 16#include "perf_regs.h"
17#include "asm/bug.h" 17#include "asm/bug.h"
18 18
19static int machines__deliver_event(struct machines *machines,
20 struct perf_evlist *evlist,
21 union perf_event *event,
22 struct perf_sample *sample,
23 struct perf_tool *tool, u64 file_offset);
24
19static int perf_session__open(struct perf_session *session) 25static int perf_session__open(struct perf_session *session)
20{ 26{
21 struct perf_data_file *file = session->file; 27 struct perf_data_file *file = session->file;
@@ -86,6 +92,14 @@ static void perf_session__set_comm_exec(struct perf_session *session)
86 machines__set_comm_exec(&session->machines, comm_exec); 92 machines__set_comm_exec(&session->machines, comm_exec);
87} 93}
88 94
95static int ordered_events__deliver_event(struct ordered_events *oe,
96 struct ordered_event *event,
97 struct perf_sample *sample)
98{
99 return machines__deliver_event(oe->machines, oe->evlist, event->event,
100 sample, oe->tool, event->file_offset);
101}
102
89struct perf_session *perf_session__new(struct perf_data_file *file, 103struct perf_session *perf_session__new(struct perf_data_file *file,
90 bool repipe, struct perf_tool *tool) 104 bool repipe, struct perf_tool *tool)
91{ 105{
@@ -125,8 +139,10 @@ struct perf_session *perf_session__new(struct perf_data_file *file,
125 tool->ordered_events && !perf_evlist__sample_id_all(session->evlist)) { 139 tool->ordered_events && !perf_evlist__sample_id_all(session->evlist)) {
126 dump_printf("WARNING: No sample_id_all support, falling back to unordered processing\n"); 140 dump_printf("WARNING: No sample_id_all support, falling back to unordered processing\n");
127 tool->ordered_events = false; 141 tool->ordered_events = false;
128 } else 142 } else {
129 ordered_events__init(&session->ordered_events, &session->machines, session->evlist, tool); 143 ordered_events__init(&session->ordered_events, &session->machines,
144 session->evlist, tool, ordered_events__deliver_event);
145 }
130 146
131 return session; 147 return session;
132 148
@@ -888,11 +904,11 @@ static int
888 &sample->read.one, machine); 904 &sample->read.one, machine);
889} 905}
890 906
891int machines__deliver_event(struct machines *machines, 907static int machines__deliver_event(struct machines *machines,
892 struct perf_evlist *evlist, 908 struct perf_evlist *evlist,
893 union perf_event *event, 909 union perf_event *event,
894 struct perf_sample *sample, 910 struct perf_sample *sample,
895 struct perf_tool *tool, u64 file_offset) 911 struct perf_tool *tool, u64 file_offset)
896{ 912{
897 struct perf_evsel *evsel; 913 struct perf_evsel *evsel;
898 struct machine *machine; 914 struct machine *machine;