Re: [PATCH V5 00/12] perf: Add Icelake support (kernel only, except Topdown)

From: Peter Zijlstra
Date: Mon Apr 08 2019 - 12:29:04 EST


On Mon, Apr 08, 2019 at 12:25:17PM -0400, Liang, Kan wrote:
>
> > > @@ -963,40 +963,42 @@ static u64 pebs_update_adaptive_cfg(stru
> > >       u64 pebs_data_cfg = 0;
> > >       bool gprs, tsx_weight;
> > > -    if ((sample_type & ~(PERF_SAMPLE_IP|PERF_SAMPLE_TIME)) ||
> > > -        attr->precise_ip < 2) {
> > > +    if (!(sample_type & ~(PERF_SAMPLE_IP|PERF_SAMPLE_TIME)) &&
> > > +        attr->precise_ip > 1)
> > > +        return pebs_data_cfs;
>
> Sorry, there are two typos. I didn't find in the previous email.
> Should be pebs_data_cfg.
>
> > > -        if (sample_type & PERF_PEBS_MEMINFO_TYPE)
> > > -            pebs_data_cfg |= PEBS_DATACFG_MEMINFO;
> > > +    if (sample_type & PERF_PEBS_MEMINFO_TYPE)
> > > +        pebs_data_cfg |= PEBS_DATACFG_MEMINFO;
> > > +    /*
> > > +     * We need GPRs when:
> > > +     * + user requested them
> > > +     * + precise_ip < 2 for the non event IP
> > > +     * + For RTM TSX weight we need GPRs for the abort code.
> > > +     */
> > > +    gprs = (sample_type & PERF_SAMPLE_REGS_INTR) &&
> > > +           (attr->sample_regs_intr & PEBS_GPRS_REGS);
> > > +
> > > +    tsx_weight = (sample_type & PERF_SAMPLE_WEIGHT) &&
> > > +             ((attr->config & INTEL_ARCH_EVENT_MASK) ==
> > > +              x86_pmu.rtm_abort_event);
> > > +
> > > +    if (gprs || (attr->precise_ip < 2) || tsx_weight)
> > > +        pebs_data_cfg |= PEBS_DATACFG_GPRS;
> > > +
> > > +    if ((sample_type & PERF_SAMPLE_REGS_INTR) &&
> > > +        (attr->sample_regs_intr & PERF_XMM_REGS))
>
> Should be PEBS_XMM_REGS.
>

Ha!, clearly I compile-tested it... oh wait :-)