Re: [PATCH] perf/x86/uncore: Allow single pmu/box within events group

From: Peter Zijlstra
Date: Fri Nov 18 2016 - 09:45:24 EST


On Fri, Nov 18, 2016 at 03:30:48PM +0100, Jiri Olsa wrote:
> > > > +static bool is_box_event(struct intel_uncore_box *box, struct perf_event *event)
> > > > {
> > > > - return event->pmu->event_init == uncore_pmu_event_init;
> > > > + return box->pmu == event->pmu;
> > >
> > > this one needs to be:
> > >
> > > + return box->pmu == uncore_event_to_pmu(event);
> > >
> > > and it works.. ;-)
> >
> > Will that not explode if we fudge a software event in there?
> >
> > Wouldn't:
> >
> > return box->pmu.pmu == event->pmu;
> >
> > be the safer option?
>
> hum right.. but for some reason I can't crash it nor even fuzzer complains

Its because pmu is the first member, so the pointer is the exact same,
just the type changes. But that is a 'happy' accident of implementation.