Re: [PATCH 5/5] perf, x86: Support Haswell v4 LBR format v2

From: Andi Kleen
Date: Wed Sep 04 2013 - 13:05:10 EST


On Wed, Sep 04, 2013 at 10:21:27AM -0400, Vince Weaver wrote:
> On Wed, 4 Sep 2013, Andi Kleen wrote:
>
> > > What does this mean? The above values are exported as part of
> > > include/uapi/linux/perf_event.h
> > > Do they not work yet?
> >
> > You can filter on the fields, but you can't see them outside
> > the kernel driver yet. The patch to see them is still pending.
>
> so you can filter for aborts, but they'll never show up in the lbr[]
> sample buffer?

They will show up, you just don't know that they are aborts
because the two new status bits are not exported.

>
> > > > > What happens if you set both in transaction and not in?
> > > >
> > > > Then you get all branches.
> > >
> > > so what happens if you set neither "PERF_SAMPLE_BRANCH_IN_TX" nor
> > > "PERF_SAMPLE_BRANCH_NO_TX"? Logically you'd get no branches at all,
> > > but that can't be true as all code prior to 3.11 didn't set those values.
> >
> > Then you get all branches too
> >
> > (that's how all the other filters work too)
>
> This is a really confusing API
>
> so does setting "PERF_SAMPLE_BRANCH_ANY" also enable all of the TX types?
>
> Is leaving branch_sample_type at 0 the same as setting it to all 1s?

I believe so.

It may be also that the catch all only works if everything is 0.

-Andi
--
ak@xxxxxxxxxxxxxxx -- Speaking for myself only
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/