Commit ffd946c4 authored by Stephane Eranian's avatar Stephane Eranian Committed by Greg Kroah-Hartman

perf/x86/intel: Allow PEBS multi-entry in watermark mode

[ Upstream commit c7a28657 ]

This patch fixes a restriction/bug introduced by:

   583feb08 ("perf/x86/intel: Fix handling of wakeup_events for multi-entry PEBS")

The original patch prevented using multi-entry PEBS when wakeup_events != 0.
However given that wakeup_events is part of a union with wakeup_watermark, it
means that in watermark mode, PEBS multi-entry is also disabled which is not the
intent. This patch fixes this by checking is watermark mode is enabled.
Signed-off-by: default avatarStephane Eranian <eranian@google.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: jolsa@redhat.com
Cc: kan.liang@intel.com
Cc: vincent.weaver@maine.edu
Fixes: 583feb08 ("perf/x86/intel: Fix handling of wakeup_events for multi-entry PEBS")
Link: http://lkml.kernel.org/r/20190514003400.224340-1-eranian@google.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent b5833cb3
...@@ -3189,7 +3189,7 @@ static int intel_pmu_hw_config(struct perf_event *event) ...@@ -3189,7 +3189,7 @@ static int intel_pmu_hw_config(struct perf_event *event)
return ret; return ret;
if (event->attr.precise_ip) { if (event->attr.precise_ip) {
if (!(event->attr.freq || event->attr.wakeup_events)) { if (!(event->attr.freq || (event->attr.wakeup_events && !event->attr.watermark))) {
event->hw.flags |= PERF_X86_EVENT_AUTO_RELOAD; event->hw.flags |= PERF_X86_EVENT_AUTO_RELOAD;
if (!(event->attr.sample_type & if (!(event->attr.sample_type &
~intel_pmu_large_pebs_flags(event))) ~intel_pmu_large_pebs_flags(event)))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment