aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/session.c
diff options
context:
space:
mode:
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;