|
@@ -757,4 +757,28 @@ union perf_mem_data_src {
|
|
|
#define PERF_MEM_S(a, s) \
|
|
|
(((u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT)
|
|
|
|
|
|
+/*
|
|
|
+ * single taken branch record layout:
|
|
|
+ *
|
|
|
+ * from: source instruction (may not always be a branch insn)
|
|
|
+ * to: branch target
|
|
|
+ * mispred: branch target was mispredicted
|
|
|
+ * predicted: branch target was predicted
|
|
|
+ *
|
|
|
+ * support for mispred, predicted is optional. In case it
|
|
|
+ * is not supported mispred = predicted = 0.
|
|
|
+ *
|
|
|
+ * in_tx: running in a hardware transaction
|
|
|
+ * abort: aborting a hardware transaction
|
|
|
+ */
|
|
|
+struct perf_branch_entry {
|
|
|
+ __u64 from;
|
|
|
+ __u64 to;
|
|
|
+ __u64 mispred:1, /* target mispredicted */
|
|
|
+ predicted:1,/* target predicted */
|
|
|
+ in_tx:1, /* in transaction */
|
|
|
+ abort:1, /* transaction abort */
|
|
|
+ reserved:60;
|
|
|
+};
|
|
|
+
|
|
|
#endif /* _UAPI_LINUX_PERF_EVENT_H */
|