diff options
Diffstat (limited to 'include/linux/perf_event.h')
| -rw-r--r-- | include/linux/perf_event.h | 33 | 
1 files changed, 26 insertions, 7 deletions
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index f463a46424e2..8873f82c7baa 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -73,13 +73,18 @@ struct perf_raw_record {   *   * support for mispred, predicted is optional. In case it   * is not supported mispred = predicted = 0. + * + *     in_tx: running in a hardware transaction + *     abort: aborting a hardware transaction   */  struct perf_branch_entry {  	__u64	from;  	__u64	to;  	__u64	mispred:1,  /* target mispredicted */  		predicted:1,/* target predicted */ -		reserved:62; +		in_tx:1,    /* in transaction */ +		abort:1,    /* transaction abort */ +		reserved:60;  };  /* @@ -113,6 +118,8 @@ struct hw_perf_event_extra {  	int		idx;	/* index in shared_regs->regs[] */  }; +struct event_constraint; +  /**   * struct hw_perf_event - performance event hardware details:   */ @@ -131,6 +138,8 @@ struct hw_perf_event {  			struct hw_perf_event_extra extra_reg;  			struct hw_perf_event_extra branch_reg; + +			struct event_constraint *constraint;  		};  		struct { /* software */  			struct hrtimer	hrtimer; @@ -188,12 +197,13 @@ struct pmu {  	struct device			*dev;  	const struct attribute_group	**attr_groups; -	char				*name; +	const char			*name;  	int				type;  	int * __percpu			pmu_disable_count;  	struct perf_cpu_context * __percpu pmu_cpu_context;  	int				task_ctx_nr; +	int				hrtimer_interval_ms;  	/*  	 * Fully disable/enable this PMU, can be used to protect from the PMI @@ -389,8 +399,7 @@ struct perf_event {  	/* mmap bits */  	struct mutex			mmap_mutex;  	atomic_t			mmap_count; -	int				mmap_locked; -	struct user_struct		*mmap_user; +  	struct ring_buffer		*rb;  	struct list_head		rb_entry; @@ -501,8 +510,9 @@ struct perf_cpu_context {  	struct perf_event_context	*task_ctx;  	int				active_oncpu;  	int				exclusive; +	struct hrtimer			hrtimer; +	ktime_t				hrtimer_interval;  	struct list_head		rotation_list; -	int				jiffies_interval;  	struct pmu			*unique_pmu;  	struct perf_cgroup		*cgrp;  }; @@ -518,7 +528,7 @@ struct perf_output_handle {  #ifdef CONFIG_PERF_EVENTS -extern int perf_pmu_register(struct pmu *pmu, char *name, int type); +extern int perf_pmu_register(struct pmu *pmu, const char *name, int type);  extern void perf_pmu_unregister(struct pmu *pmu);  extern int perf_num_counters(void); @@ -696,10 +706,17 @@ static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64  extern int sysctl_perf_event_paranoid;  extern int sysctl_perf_event_mlock;  extern int sysctl_perf_event_sample_rate; +extern int sysctl_perf_cpu_time_max_percent; + +extern void perf_sample_event_took(u64 sample_len_ns);  extern int perf_proc_update_handler(struct ctl_table *table, int write,  		void __user *buffer, size_t *lenp,  		loff_t *ppos); +extern int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write, +		void __user *buffer, size_t *lenp, +		loff_t *ppos); +  static inline bool perf_paranoid_tracepoint_raw(void)  { @@ -743,6 +760,7 @@ extern unsigned int perf_output_skip(struct perf_output_handle *handle,  				     unsigned int len);  extern int perf_swevent_get_recursion_context(void);  extern void perf_swevent_put_recursion_context(int rctx); +extern u64 perf_swevent_set_period(struct perf_event *event);  extern void perf_event_enable(struct perf_event *event);  extern void perf_event_disable(struct perf_event *event);  extern int __perf_event_disable(void *info); @@ -782,6 +800,7 @@ static inline void perf_event_fork(struct task_struct *tsk)		{ }  static inline void perf_event_init(void)				{ }  static inline int  perf_swevent_get_recursion_context(void)		{ return -1; }  static inline void perf_swevent_put_recursion_context(int rctx)		{ } +static inline u64 perf_swevent_set_period(struct perf_event *event)	{ return 0; }  static inline void perf_event_enable(struct perf_event *event)		{ }  static inline void perf_event_disable(struct perf_event *event)		{ }  static inline int __perf_event_disable(void *info)			{ return -1; } @@ -803,7 +822,7 @@ static inline void perf_restore_debug_store(void)			{ }  #define perf_output_put(handle, x) perf_output_copy((handle), &(x), sizeof(x))  /* - * This has to have a higher priority than migration_notifier in sched.c. + * This has to have a higher priority than migration_notifier in sched/core.c.   */  #define perf_cpu_notifier(fn)						\  do {									\  | 
