Messages in this thread | | | From | Alexander Shishkin <> | Subject | Re: [PATCH v8 12/14] x86: perf: intel_pt: Intel PT PMU driver | Date | Tue, 13 Jan 2015 17:09:58 +0200 |
| |
Peter Zijlstra <peterz@infradead.org> writes:
> On Fri, Nov 14, 2014 at 03:43:45PM +0200, Alexander Shishkin wrote: >> +static void pt_event_stop(struct perf_event *event, int mode) >> +{ >> + struct pt *pt = this_cpu_ptr(&pt_ctx); >> + >> + ACCESS_ONCE(pt->handle_nmi) = 0; > > Why is this needed? Will the hardware still generate interrupts if you > stop the PT thing?
Actually, it turns out that the interrupt condition can race with the wrmsr that disables tracing and the PT bit remains set in the global status register, causing the next PMI to go into the PT PMI handler, which then may decide to re-enable the counter that should be disabled.
Regards, -- Alex
| |