Re: [RFC] perf/x86/intel/uncore: pmu->type->single_fixed question

From: Jiri Olsa
Date: Wed Nov 30 2016 - 10:38:32 EST


On Wed, Nov 30, 2016 at 03:27:52PM +0000, Liang, Kan wrote:
>
> >
> > > hi,
> > > I'm trying to find out some documentation background for this part of
> > > uncore code:
> > >
> > > ---
> > > static int uncore_pmu_event_init(struct perf_event *event) {
> > > ...
> > > if (event->attr.config == UNCORE_FIXED_EVENT) {
> > > /* no fixed counter */
> > > if (!pmu->type->fixed_ctl)
> > > return -EINVAL;
> > > /*
> > > * if there is only one fixed counter, only the first pmu
> > > * can access the fixed counter
> > > */
> > > if (pmu->type->single_fixed && pmu->pmu_idx > 0)
> > > return -EINVAL;
> > > ...
> > > ---
> > >
> > > that for some uncore types (those with pmu->type->single_fixed) only
> > > the first pmu (code_id == 0) will allow to touch the clocktick event
> > >
> > > other cores boxes will not allow to open clocktick event, eventhough
> > > it's announced via /sys/../events/..
> > >
> > > I'm probably missing some HW logic of specific boxes that would
> > > explain that, but I can't find it.
> >
> > The client uncore has a standalone clocktick fixed counter. It doesn't belong
> > to any boxes, which is different from server uncore.
> >
> > But client and server uncore share the same uncore_pmu_event_init.
> > So it forces that only the first box can access the fixed counter.
> >
> > Maybe we should create a clocktick box for client uncore to fix it.
> >
> > You can find the fixed counter information from 18.11.6 in latest SDM
> > (Order Number: 325384-060US).
> >
> > There should be a Skylake client uncore document published somewhere.
> > But I cannot find it from Google. Let me ask around.
>
> Here is the published document.
> http://www.intel.com/content/www/us/en/processors/core/6th-gen-core-family-uncore-performance-monitoring-manual.html
>

will check, thanks a lot!

jirka