On Tue, Jan 13, 2015 at 05:09:58PM +0200, Alexander Shishkin wrote: > Peter Zijlstra <pet...@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.
OK, please add this information in a suitably placed comment. Thanks! -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/