On Fri, Dec 11, 2015 at 05:01:36PM +0100, Peter Zijlstra wrote: > On Fri, Dec 11, 2015 at 05:48:03PM +0200, Alexander Shishkin wrote: > > > > We can always call the validation thing, we must not call the program > > > thing !ACTIVE is a clear and simple rule. > > > > Ah, but pmu::itrace_filter_setup() does not touch the hardware, > > pmu::start() does. The former keeps an array of, say, MSR values ready > > for programming in event::hw and the latter actually writes the MSRs. So > > the above example should not be a problem. > > > > So in a way validation and programming are split already. And PT, for > > example, won't have it any other way, you can only program stuff into > > the registers while tracing is disabled. > > Yes, I just read that in the last patch. If however we fold the whole > stop/start bits into it, that fails again. > > Hmm.. lemme ponder a bit.
Nope, it doesn't matter. Either way around you need serialization. Because while, as proposed, pmu::itrace_filter_setup() does not modify the hardware state, it does modify event state. So it needs to be serialized against concurrent pmu::add(). -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

