Commit 71ef3c6b authored by Andi Kleen's avatar Andi Kleen Committed by Ingo Molnar

perf: Add cycles to branch_info

Intel Skylake supports reporting the time in cycles a branch in the LBR
took, to give a rough indication of the basic block performance.

Export the cycle information in the branch_info structure.
This can be done by just reusing some currently zero padding.

This is just the generic header change. The architecture
still needs to fill it in.

There's no attempt to convert to real time, as we really
want cycles here.
Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: eranian@google.com
Link: http://lkml.kernel.org/r/1431285767-27027-5-git-send-email-andi@firstfloor.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent b83ff1c8
...@@ -951,6 +951,7 @@ union perf_mem_data_src { ...@@ -951,6 +951,7 @@ union perf_mem_data_src {
* *
* in_tx: running in a hardware transaction * in_tx: running in a hardware transaction
* abort: aborting a hardware transaction * abort: aborting a hardware transaction
* cycles: cycles from last branch (or 0 if not supported)
*/ */
struct perf_branch_entry { struct perf_branch_entry {
__u64 from; __u64 from;
...@@ -959,7 +960,8 @@ struct perf_branch_entry { ...@@ -959,7 +960,8 @@ struct perf_branch_entry {
predicted:1,/* target predicted */ predicted:1,/* target predicted */
in_tx:1, /* in transaction */ in_tx:1, /* in transaction */
abort:1, /* transaction abort */ abort:1, /* transaction abort */
reserved:60; cycles:16, /* cycle count to last branch */
reserved:44;
}; };
#endif /* _UAPI_LINUX_PERF_EVENT_H */ #endif /* _UAPI_LINUX_PERF_EVENT_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment