perf session: Export a few functions for event processing
authorDavid Ahern <dsahern@gmail.com>
Fri, 2 Aug 2013 20:05:41 +0000 (14:05 -0600)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 7 Aug 2013 20:35:27 +0000 (17:35 -0300)
Allows kvm live mode to reuse the event processing and ordered samples
processing used by the perf-report path.

v2: removed flush_sample_queue as noticed by Jiri

Signed-off-by: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Runzhen Wang <runzhen@linux.vnet.ibm.com>
Cc: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/1375473947-64285-4-git-send-email-dsahern@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/session.c
tools/perf/util/session.h

index a0ce5a46abbe2e9a44b4ee6515772250aedf35e9..b5ebd4751a0407106f81c104f577c5e2c740afd9 100644 (file)
@@ -250,7 +250,7 @@ static int process_finished_round(struct perf_tool *tool,
                                  union perf_event *event,
                                  struct perf_session *session);
 
-static void perf_tool__fill_defaults(struct perf_tool *tool)
+void perf_tool__fill_defaults(struct perf_tool *tool)
 {
        if (tool->sample == NULL)
                tool->sample = process_event_sample_stub;
@@ -495,7 +495,7 @@ static int perf_session_deliver_event(struct perf_session *session,
                                      u64 file_offset);
 
 static int flush_sample_queue(struct perf_session *s,
-                              struct perf_tool *tool)
+                      struct perf_tool *tool)
 {
        struct ordered_samples *os = &s->ordered_samples;
        struct list_head *head = &os->samples;
@@ -1049,10 +1049,10 @@ static void event_swap(union perf_event *event, bool sample_id_all)
                swap(event, sample_id_all);
 }
 
-static int perf_session__process_event(struct perf_session *session,
-                                      union perf_event *event,
-                                      struct perf_tool *tool,
-                                      u64 file_offset)
+int perf_session__process_event(struct perf_session *session,
+                               union perf_event *event,
+                               struct perf_tool *tool,
+                               u64 file_offset)
 {
        struct perf_sample sample;
        int ret;
index ad8d3d4ef14ea83eaf13f0f2c56ad21bb2ab1660..9818fc25a62f15a90a7f38cdfe6328afa1396d6f 100644 (file)
@@ -56,6 +56,13 @@ int __perf_session__process_events(struct perf_session *self,
 int perf_session__process_events(struct perf_session *self,
                                 struct perf_tool *tool);
 
+int perf_session__process_event(struct perf_session *session,
+                               union perf_event *event,
+                               struct perf_tool *tool,
+                               u64 file_offset);
+
+void perf_tool__fill_defaults(struct perf_tool *tool);
+
 int perf_session__resolve_callchain(struct perf_session *self, struct perf_evsel *evsel,
                                    struct thread *thread,
                                    struct ip_callchain *chain,