Re: [PATCH 3/3] perf/x86/rapl: add AMD Fam17h RAPL support

From: Stephane Eranian
Date: Wed May 20 2020 - 04:35:06 EST


Hi,

On Mon, May 18, 2020 at 1:16 PM Stephane Eranian <eranian@xxxxxxxxxx> wrote:
>
> On Mon, May 18, 2020 at 2:34 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> >
> > On Fri, May 15, 2020 at 02:57:33PM -0700, Stephane Eranian wrote:
> >
> > > +static struct perf_msr amd_rapl_msrs[] = {
> > > + [PERF_RAPL_PP0] = { 0, &rapl_events_cores_group, NULL},
> > > + [PERF_RAPL_PKG] = { MSR_AMD_PKG_ENERGY_STATUS, &rapl_events_pkg_group, test_msr },
> > > + [PERF_RAPL_RAM] = { 0, &rapl_events_ram_group, NULL},
> > > + [PERF_RAPL_PP1] = { 0, &rapl_events_gpu_group, NULL},
> > > + [PERF_RAPL_PSYS] = { 0, &rapl_events_psys_group, NULL},
> > > +};
> >
> > Why have those !PKG things initialized? Wouldn't they default to 0
> > anyway? If not, surely { 0, } is sufficient.
>
> Yes, but that assumes that perf_msr_probe() is fixed to not expect a grp.
> I think it is best to fix perf_msr_probe(). I already fixed one
> problem, I'll fix this one as well.

Well, now I remember what I did it the way it is in the patch. This
grp is going to sysfs, i.e., visible vs. not_visible callback.
Even if I fix the handling of NULL grp in perf_msr_probe(), the rest
of the rapl code pushes every event to sysfs and if the visible
callback is set to NULL this means the event is visible for sysfs! We
can fix that in init_rapl_pmus() but that is not pretty or leave it
as is, your call.