Messages in this thread | | | Date | Fri, 11 Dec 2015 18:02:18 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH v0 3/5] perf: Introduce instruction trace filtering |
| |
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().
| |