aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorYan, Zheng <zheng.z.yan@intel.com>2014-11-04 21:56:06 -0500
committerIngo Molnar <mingo@kernel.org>2015-02-18 11:16:11 -0500
commita46a23000198d929391aa9dac8de68734efa2703 (patch)
tree667ff791575984b15e3e6c430668125141497758 /include
parent76cb2c617f12a4dd53c0e899972813b805ad6cc2 (diff)
perf: Simplify the branch stack check
Use event->attr.branch_sample_type to replace intel_pmu_needs_lbr_smpl() for avoiding duplicated code that implicitly enables the LBR. Currently, branch stack can be enabled by user explicitly requesting branch sampling or implicit branch sampling to correct PEBS skid. For user explicitly requested branch sampling, the branch_sample_type is explicitly set by user. For PEBS case, the branch_sample_type is also implicitly set to PERF_SAMPLE_BRANCH_ANY in x86_pmu_hw_config. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com> Signed-off-by: Kan Liang <kan.liang@intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Arnaldo Carvalho de Melo <acme@kernel.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Paul Mackerras <paulus@samba.org> Cc: eranian@google.com Cc: jolsa@redhat.com Link: http://lkml.kernel.org/r/1415156173-10035-11-git-send-email-kan.liang@intel.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/perf_event.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 270cd0173e61..43cc158487e6 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -814,6 +814,11 @@ static inline bool has_branch_stack(struct perf_event *event)
814 return event->attr.sample_type & PERF_SAMPLE_BRANCH_STACK; 814 return event->attr.sample_type & PERF_SAMPLE_BRANCH_STACK;
815} 815}
816 816
817static inline bool needs_branch_stack(struct perf_event *event)
818{
819 return event->attr.branch_sample_type != 0;
820}
821
817extern int perf_output_begin(struct perf_output_handle *handle, 822extern int perf_output_begin(struct perf_output_handle *handle,
818 struct perf_event *event, unsigned int size); 823 struct perf_event *event, unsigned int size);
819extern void perf_output_end(struct perf_output_handle *handle); 824extern void perf_output_end(struct perf_output_handle *handle);