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.shish...@linux.intel.com> Reported-by: Andi Kleen <a...@linux.intel.com> 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) -- 2.11.0