Messages in this thread | | | From | "Liang, Kan" <> | Subject | RE: [PATCH V6 5/8] perf/x86/intel/uncore: add infrastructure for free running counter | Date | Mon, 19 Mar 2018 13:00:09 +0000 |
| |
> On Thu, Jan 25, 2018 at 12:13:45PM -0800, kan.liang@intel.com wrote: > > @@ -512,6 +538,17 @@ static int uncore_pmu_event_add(struct > perf_event *event, int flags) > > if (!box) > > return -ENODEV; > > > > + /* > > + * The free funning counter is assigned in event_init(). > > + * The free running counter event and free running counter > > + * are 1:1 mapped. It doesn't need to be tracked in event_list. > > + */ > > + if (uncore_pmc_freerunning(hwc->idx)) { > > + if (flags & PERF_EF_START) > > + uncore_pmu_event_start(event, 0); > > + return 0; > > + } > > + > > ret = n = uncore_collect_events(box, event, false); > > if (ret < 0) > > return ret; > > This will result in some (probably) unexpected scheduling artifacts. > Probably the only way to really cure that is to have the free running > counters in their own PMU and not share with the GP counters of this > box.
I'm not quite sure what the unexpected scheduling artifacts could be. But, yes, I can move all the free running counters to new PMU for SKX and later platforms.
Thanks, Kan
| |