summaryrefslogtreecommitdiff
path: root/tools/perf/util/ordered-events.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2015-03-13 13:30:10 +0100
committerIngo Molnar <mingo@kernel.org>2015-03-13 13:30:10 +0100
commit107eb964d8c04417e8bce9e9ec2ed61d9261aec6 (patch)
tree08b8a8c0a8af78e75ea4b6aed7d13c4efbf23ffa /tools/perf/util/ordered-events.h
parent94ac003b665fc04f13a7ab3b2be896b9b9503451 (diff)
parent69364727be2f3dc71a046771965c3c9d5ccce699 (diff)
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: User visible changes: - Fix UI bug after zoom into thread/dso/symbol and another, after fold/unfold, in the TUI hists browser (He Kuang) - Fixes for 'perf probe' to better handle aliased symbols, for instance in glibc (Masami Hiramatsu, Namhyung Kim) - 'perf kmem' improvements and fixes: (Namhyung Kim) - Fix segfault when invalid sort key is given - Allow -v option - Fix alignment of slab result table - 'perf stat' improvements and fixes: (Andi Kleen) - Output running time and run/enabled ratio in CSV mode - Fix IPC and other formulas with -A - Always correctly indent ratio column - Add tracepoint events fields CTF conversion support to 'perf data' (Sebastian Andrzej Siewior) Infrastructure changes: - Output feature detection's gcc output to a file, to help in debugging (Arnaldo Carvalho de Melo) - Fix 'perf probe' compiles due to declarations using perf_probe_point (David Ahern) - Fix possible double free on error in 'perf probe' (He Kuang) - Remove superfluous thread->comm_set setting (Jiri Olsa) - Fix libbabeltrace detection (Jiri Olsa) - More work on separating ordered_events code out of perf_session (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/util/ordered-events.h')
-rw-r--r--tools/perf/util/ordered-events.h27
1 files changed, 20 insertions, 7 deletions
diff --git a/tools/perf/util/ordered-events.h b/tools/perf/util/ordered-events.h
index 7b8f9b011f38..173e13f28c08 100644
--- a/tools/perf/util/ordered-events.h
+++ b/tools/perf/util/ordered-events.h
@@ -2,9 +2,11 @@
#define __ORDERED_EVENTS_H
#include <linux/types.h>
-#include "tool.h"
-struct perf_session;
+struct perf_tool;
+struct perf_evlist;
+struct perf_sample;
+struct machines;
struct ordered_event {
u64 timestamp;
@@ -20,6 +22,12 @@ enum oe_flush {
OE_FLUSH__HALF,
};
+struct ordered_events;
+
+typedef int (*ordered_events__deliver_t)(struct ordered_events *oe,
+ struct ordered_event *event,
+ struct perf_sample *sample);
+
struct ordered_events {
u64 last_flush;
u64 next_flush;
@@ -31,18 +39,23 @@ struct ordered_events {
struct list_head to_free;
struct ordered_event *buffer;
struct ordered_event *last;
+ struct machines *machines;
+ struct perf_evlist *evlist;
+ struct perf_tool *tool;
+ ordered_events__deliver_t deliver;
int buffer_idx;
unsigned int nr_events;
enum oe_flush last_flush_type;
bool copy_on_queue;
};
-struct ordered_event *ordered_events__new(struct ordered_events *oe, u64 timestamp,
- union perf_event *event);
+int ordered_events__queue(struct ordered_events *oe, union perf_event *event,
+ struct perf_sample *sample, u64 file_offset);
void ordered_events__delete(struct ordered_events *oe, struct ordered_event *event);
-int ordered_events__flush(struct perf_session *s, struct perf_tool *tool,
- enum oe_flush how);
-void ordered_events__init(struct ordered_events *oe);
+int ordered_events__flush(struct ordered_events *oe, enum oe_flush how);
+void ordered_events__init(struct ordered_events *oe, struct machines *machines,
+ struct perf_evlist *evlsit, struct perf_tool *tool,
+ ordered_events__deliver_t deliver);
void ordered_events__free(struct ordered_events *oe);
static inline