diff options
-rw-r--r-- | arch/x86/kernel/cpu/perf_event.h | 8 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/perf_event_intel_lbr.c | 8 | ||||
-rw-r--r-- | include/uapi/linux/perf_event.h | 16 |
3 files changed, 12 insertions, 20 deletions
diff --git a/arch/x86/kernel/cpu/perf_event.h b/arch/x86/kernel/cpu/perf_event.h index 69c26b396cf4..a371d27d6795 100644 --- a/arch/x86/kernel/cpu/perf_event.h +++ b/arch/x86/kernel/cpu/perf_event.h | |||
@@ -523,14 +523,6 @@ struct x86_perf_task_context { | |||
523 | int lbr_stack_state; | 523 | int lbr_stack_state; |
524 | }; | 524 | }; |
525 | 525 | ||
526 | enum { | ||
527 | PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = PERF_SAMPLE_BRANCH_MAX_SHIFT, | ||
528 | PERF_SAMPLE_BRANCH_SELECT_MAP_SIZE, | ||
529 | |||
530 | PERF_SAMPLE_BRANCH_CALL_STACK = | ||
531 | 1U << PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT, | ||
532 | }; | ||
533 | |||
534 | #define x86_add_quirk(func_) \ | 526 | #define x86_add_quirk(func_) \ |
535 | do { \ | 527 | do { \ |
536 | static struct x86_pmu_quirk __quirk __initdata = { \ | 528 | static struct x86_pmu_quirk __quirk __initdata = { \ |
diff --git a/arch/x86/kernel/cpu/perf_event_intel_lbr.c b/arch/x86/kernel/cpu/perf_event_intel_lbr.c index 084f2eb20c8b..0473874109cb 100644 --- a/arch/x86/kernel/cpu/perf_event_intel_lbr.c +++ b/arch/x86/kernel/cpu/perf_event_intel_lbr.c | |||
@@ -537,7 +537,7 @@ static int intel_pmu_setup_hw_lbr_filter(struct perf_event *event) | |||
537 | u64 mask = 0, v; | 537 | u64 mask = 0, v; |
538 | int i; | 538 | int i; |
539 | 539 | ||
540 | for (i = 0; i < PERF_SAMPLE_BRANCH_SELECT_MAP_SIZE; i++) { | 540 | for (i = 0; i < PERF_SAMPLE_BRANCH_MAX_SHIFT; i++) { |
541 | if (!(br_type & (1ULL << i))) | 541 | if (!(br_type & (1ULL << i))) |
542 | continue; | 542 | continue; |
543 | 543 | ||
@@ -821,7 +821,7 @@ intel_pmu_lbr_filter(struct cpu_hw_events *cpuc) | |||
821 | /* | 821 | /* |
822 | * Map interface branch filters onto LBR filters | 822 | * Map interface branch filters onto LBR filters |
823 | */ | 823 | */ |
824 | static const int nhm_lbr_sel_map[PERF_SAMPLE_BRANCH_SELECT_MAP_SIZE] = { | 824 | static const int nhm_lbr_sel_map[PERF_SAMPLE_BRANCH_MAX_SHIFT] = { |
825 | [PERF_SAMPLE_BRANCH_ANY_SHIFT] = LBR_ANY, | 825 | [PERF_SAMPLE_BRANCH_ANY_SHIFT] = LBR_ANY, |
826 | [PERF_SAMPLE_BRANCH_USER_SHIFT] = LBR_USER, | 826 | [PERF_SAMPLE_BRANCH_USER_SHIFT] = LBR_USER, |
827 | [PERF_SAMPLE_BRANCH_KERNEL_SHIFT] = LBR_KERNEL, | 827 | [PERF_SAMPLE_BRANCH_KERNEL_SHIFT] = LBR_KERNEL, |
@@ -840,7 +840,7 @@ static const int nhm_lbr_sel_map[PERF_SAMPLE_BRANCH_SELECT_MAP_SIZE] = { | |||
840 | [PERF_SAMPLE_BRANCH_COND_SHIFT] = LBR_JCC, | 840 | [PERF_SAMPLE_BRANCH_COND_SHIFT] = LBR_JCC, |
841 | }; | 841 | }; |
842 | 842 | ||
843 | static const int snb_lbr_sel_map[PERF_SAMPLE_BRANCH_SELECT_MAP_SIZE] = { | 843 | static const int snb_lbr_sel_map[PERF_SAMPLE_BRANCH_MAX_SHIFT] = { |
844 | [PERF_SAMPLE_BRANCH_ANY_SHIFT] = LBR_ANY, | 844 | [PERF_SAMPLE_BRANCH_ANY_SHIFT] = LBR_ANY, |
845 | [PERF_SAMPLE_BRANCH_USER_SHIFT] = LBR_USER, | 845 | [PERF_SAMPLE_BRANCH_USER_SHIFT] = LBR_USER, |
846 | [PERF_SAMPLE_BRANCH_KERNEL_SHIFT] = LBR_KERNEL, | 846 | [PERF_SAMPLE_BRANCH_KERNEL_SHIFT] = LBR_KERNEL, |
@@ -852,7 +852,7 @@ static const int snb_lbr_sel_map[PERF_SAMPLE_BRANCH_SELECT_MAP_SIZE] = { | |||
852 | [PERF_SAMPLE_BRANCH_COND_SHIFT] = LBR_JCC, | 852 | [PERF_SAMPLE_BRANCH_COND_SHIFT] = LBR_JCC, |
853 | }; | 853 | }; |
854 | 854 | ||
855 | static const int hsw_lbr_sel_map[PERF_SAMPLE_BRANCH_SELECT_MAP_SIZE] = { | 855 | static const int hsw_lbr_sel_map[PERF_SAMPLE_BRANCH_MAX_SHIFT] = { |
856 | [PERF_SAMPLE_BRANCH_ANY_SHIFT] = LBR_ANY, | 856 | [PERF_SAMPLE_BRANCH_ANY_SHIFT] = LBR_ANY, |
857 | [PERF_SAMPLE_BRANCH_USER_SHIFT] = LBR_USER, | 857 | [PERF_SAMPLE_BRANCH_USER_SHIFT] = LBR_USER, |
858 | [PERF_SAMPLE_BRANCH_KERNEL_SHIFT] = LBR_KERNEL, | 858 | [PERF_SAMPLE_BRANCH_KERNEL_SHIFT] = LBR_KERNEL, |
diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h index e46b93279e3d..1e3cd07cf76e 100644 --- a/include/uapi/linux/perf_event.h +++ b/include/uapi/linux/perf_event.h | |||
@@ -166,6 +166,8 @@ enum perf_branch_sample_type_shift { | |||
166 | PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 9, /* not in transaction */ | 166 | PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 9, /* not in transaction */ |
167 | PERF_SAMPLE_BRANCH_COND_SHIFT = 10, /* conditional branches */ | 167 | PERF_SAMPLE_BRANCH_COND_SHIFT = 10, /* conditional branches */ |
168 | 168 | ||
169 | PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 11, /* call/ret stack */ | ||
170 | |||
169 | PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */ | 171 | PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */ |
170 | }; | 172 | }; |
171 | 173 | ||
@@ -175,18 +177,16 @@ enum perf_branch_sample_type { | |||
175 | PERF_SAMPLE_BRANCH_HV = 1U << PERF_SAMPLE_BRANCH_HV_SHIFT, | 177 | PERF_SAMPLE_BRANCH_HV = 1U << PERF_SAMPLE_BRANCH_HV_SHIFT, |
176 | 178 | ||
177 | PERF_SAMPLE_BRANCH_ANY = 1U << PERF_SAMPLE_BRANCH_ANY_SHIFT, | 179 | PERF_SAMPLE_BRANCH_ANY = 1U << PERF_SAMPLE_BRANCH_ANY_SHIFT, |
178 | PERF_SAMPLE_BRANCH_ANY_CALL = | 180 | PERF_SAMPLE_BRANCH_ANY_CALL = 1U << PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT, |
179 | 1U << PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT, | 181 | PERF_SAMPLE_BRANCH_ANY_RETURN = 1U << PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT, |
180 | PERF_SAMPLE_BRANCH_ANY_RETURN = | 182 | PERF_SAMPLE_BRANCH_IND_CALL = 1U << PERF_SAMPLE_BRANCH_IND_CALL_SHIFT, |
181 | 1U << PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT, | 183 | PERF_SAMPLE_BRANCH_ABORT_TX = 1U << PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT, |
182 | PERF_SAMPLE_BRANCH_IND_CALL = | ||
183 | 1U << PERF_SAMPLE_BRANCH_IND_CALL_SHIFT, | ||
184 | PERF_SAMPLE_BRANCH_ABORT_TX = | ||
185 | 1U << PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT, | ||
186 | PERF_SAMPLE_BRANCH_IN_TX = 1U << PERF_SAMPLE_BRANCH_IN_TX_SHIFT, | 184 | PERF_SAMPLE_BRANCH_IN_TX = 1U << PERF_SAMPLE_BRANCH_IN_TX_SHIFT, |
187 | PERF_SAMPLE_BRANCH_NO_TX = 1U << PERF_SAMPLE_BRANCH_NO_TX_SHIFT, | 185 | PERF_SAMPLE_BRANCH_NO_TX = 1U << PERF_SAMPLE_BRANCH_NO_TX_SHIFT, |
188 | PERF_SAMPLE_BRANCH_COND = 1U << PERF_SAMPLE_BRANCH_COND_SHIFT, | 186 | PERF_SAMPLE_BRANCH_COND = 1U << PERF_SAMPLE_BRANCH_COND_SHIFT, |
189 | 187 | ||
188 | PERF_SAMPLE_BRANCH_CALL_STACK = 1U << PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT, | ||
189 | |||
190 | PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT, | 190 | PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT, |
191 | }; | 191 | }; |
192 | 192 | ||