On 7/11/2017 8:06 PM, Peter Zijlstra wrote:
On Tue, Jul 11, 2017 at 11:00:57PM +0800, Jin Yao wrote:
PERF_BR_NONE            : unknown
I would suggest PERF_BR_UNKNOWN or PERF_BR_MISC, since PERF_BR_NONE
reads like it wasn't a branch at all.

OK, I will change it to PERF_BR_UNKNOWN.

PERF_BR_COND            :conditional
PERF_BR_UNCOND          : unconditional
PERF_BR_IND             : indirect
PERF_BR_CALL            : function call
PERF_BR_IND_CALL        : indirect function call
PERF_BR_RET             : function return
PERF_BR_SYSCALL         : syscall
PERF_BR_SYSRET          : syscall return
PERF_BR_COND_CALL       : conditional function call
PERF_BR_COND_RET        : conditional function return

The patch also adds a new field type (4 bits) in perf_branch_entry
to record the branch type (reserve 5 for future branch types)
What's up with that 5 ? I can't see anything like that in the patch
itself:

Sorry, I don't say this clearly.

We has defined 11 branch types (from PERF_BR_UNKNOWN to PERF_BR_COND_RET), so we can define 5 new types in future.

Thanks
Jin Yao

@@ -1024,7 +1048,8 @@ struct perf_branch_entry {
                in_tx:1,    /* in transaction */
                abort:1,    /* transaction abort */
                cycles:16,  /* cycle count to last branch */
-               reserved:44;
+               type:4,     /* branch type */
+               reserved:40;
  };


Reply via email to