[PATCH 1/2] perf/x86/intel/pt: Fail event scheduling on conflict with VMX

From: Alexander Shishkin
Date: Tue Feb 14 2017 - 08:33:50 EST

At the moment, if VMX operation prevents PT tracing, the PMU will
silently return success to the event scheduling code, which will
track its 'on' time, etc. Instead, report failure so that perf
core knows this event is not actually on.

Signed-off-by: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Reported-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
Fixes: 1c5ac21a0e ("perf/x86/intel/pt: Don't die on VMXON")
arch/x86/events/intel/pt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/events/intel/pt.c b/arch/x86/events/intel/pt.c
index d92a60ef08..9372fa4549 100644
--- a/arch/x86/events/intel/pt.c
+++ b/arch/x86/events/intel/pt.c
@@ -1335,7 +1335,7 @@ static void pt_event_start(struct perf_event *event, int mode)
struct pt_buffer *buf;

if (READ_ONCE(pt->vmx_on))
- return;
+ goto fail_stop;

buf = perf_aux_output_begin(&pt->handle, event);
if (!buf)