On Fri, Jan 11, 2019 at 04:52:22PM -0500, Vince Weaver wrote: > On Thu, 10 Jan 2019, Vince Weaver wrote: > > > On Thu, 10 Jan 2019, Vince Weaver wrote: > > > > > On Thu, 10 Jan 2019, Vince Weaver wrote: > > > > > > > However if you create an all-process attached to CPU event: > > > > perf_event_open(attr, -1, X, -1, 0); > > > > the mmap event index is set as if this were a valid event and so the > > > > rdpmc > > > > succeeds even though it shouldn't (we're trying to read an event value > > > > on a remote cpu with a local rdpmc). > > so on further looking at the code, it doesn't appear that rdpmc events are > explicitly marked as unavailable in the attach-cpu or attach-pid case, > it's just by luck the check for PERF_EVENT_STATE_ACTIVE catches most of > the cases? > > should an explicit check be added to zero out userpg->index in cases where > the event being measured is running on a different core?
And how would we konw? We don't know what CPU will be observing the mmap(). RDPMC fundamentally only makes sense on 'self' (either task or CPU).