diff options
Diffstat (limited to 'arch/x86/include/asm/perf_event.h')
| -rw-r--r-- | arch/x86/include/asm/perf_event.h | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/x86/include/asm/perf_event.h b/arch/x86/include/asm/perf_event.h index 2291895b183..588f52ea810 100644 --- a/arch/x86/include/asm/perf_event.h +++ b/arch/x86/include/asm/perf_event.h @@ -158,6 +158,7 @@ struct x86_pmu_capability {  #define IBS_CAPS_OPCNT			(1U<<4)  #define IBS_CAPS_BRNTRGT		(1U<<5)  #define IBS_CAPS_OPCNTEXT		(1U<<6) +#define IBS_CAPS_RIPINVALIDCHK		(1U<<7)  #define IBS_CAPS_DEFAULT		(IBS_CAPS_AVAIL		\  					 | IBS_CAPS_FETCHSAM	\ @@ -170,21 +171,28 @@ struct x86_pmu_capability {  #define IBSCTL_LVT_OFFSET_VALID		(1ULL<<8)  #define IBSCTL_LVT_OFFSET_MASK		0x0F -/* IbsFetchCtl bits/masks */ +/* ibs fetch bits/masks */  #define IBS_FETCH_RAND_EN	(1ULL<<57)  #define IBS_FETCH_VAL		(1ULL<<49)  #define IBS_FETCH_ENABLE	(1ULL<<48)  #define IBS_FETCH_CNT		0xFFFF0000ULL  #define IBS_FETCH_MAX_CNT	0x0000FFFFULL -/* IbsOpCtl bits */ +/* ibs op bits/masks */ +/* lower 4 bits of the current count are ignored: */ +#define IBS_OP_CUR_CNT		(0xFFFF0ULL<<32)  #define IBS_OP_CNT_CTL		(1ULL<<19)  #define IBS_OP_VAL		(1ULL<<18)  #define IBS_OP_ENABLE		(1ULL<<17)  #define IBS_OP_MAX_CNT		0x0000FFFFULL  #define IBS_OP_MAX_CNT_EXT	0x007FFFFFULL	/* not a register bit mask */ +#define IBS_RIP_INVALID		(1ULL<<38) +#ifdef CONFIG_X86_LOCAL_APIC  extern u32 get_ibs_caps(void); +#else +static inline u32 get_ibs_caps(void) { return 0; } +#endif  #ifdef CONFIG_PERF_EVENTS  extern void perf_events_lapic_init(void);  |