History

perf: Export struct perf_branch_entry to userspace

If PERF_SAMPLE_BRANCH_STACK is enabled then samples are returned with the format { u64 from, to, flags } but the flags layout is not specified. This field has the type struct perf_branch_entry; move this definition into include/uapi/linux/perf_event.h so users can access these fields. This is similar to the existing inclusion of perf_mem_data_src in the include/uapi/linux/perf_event.h file.

Vince Weaver committed 13 years ago

Commit 274481d1 parent 13d7a242 files · +24 −24Browse files

Showing the changes to include/uapi/linux (1 of 2 files). Show all

Unified · Split

include/uapi/linux/perf_event.h+24−0
@@ -757,4 +757,28 @@ union perf_mem_data_src { · 756 unmodified lines
757#define PERF_MEM_S(a, s) \757#define PERF_MEM_S(a, s) \
758 (((u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT)758 (((u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT)
759 759
760/*
761 * single taken branch record layout:
762 *
763 * from: source instruction (may not always be a branch insn)
764 * to: branch target
765 * mispred: branch target was mispredicted
766 * predicted: branch target was predicted
767 *
768 * support for mispred, predicted is optional. In case it
769 * is not supported mispred = predicted = 0.
770 *
771 * in_tx: running in a hardware transaction
772 * abort: aborting a hardware transaction
773 */
774struct perf_branch_entry {
775 __u64 from;
776 __u64 to;
777 __u64 mispred:1, /* target mispredicted */
778 predicted:1,/* target predicted */
779 in_tx:1, /* in transaction */
780 abort:1, /* transaction abort */
781 reserved:60;
782};
783
760#endif /* _UAPI_LINUX_PERF_EVENT_H */784#endif /* _UAPI_LINUX_PERF_EVENT_H */