On Fri, Aug 23, 2013 at 9:51 PM, Vince Weaver <vincent.wea...@maine.edu> wrote: > > On Mon, 8 Jul 2013, Vince Weaver wrote: > > If PERF_SAMPLE_BRANCH_STACK is enabled then samples are returned > with the format { u64 from, to, flags } but the flags layout > is not specified. > > This field has the type struct perf_branch_entry; move this > definition into include/uapi/linux/perf_event.h so users can > access these fields. > > This is similar to the existing inclusion of perf_mem_data_src in > the include/uapi/linux/perf_event.h file. > > Signed-off-by: Vince Weaver <vincent.wea...@maine.edu> > This makes sense. Acked-by: Stephane Eranian <eran...@google.com>
> > diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h > index 8873f82..65b2553 100644 > --- a/include/linux/perf_event.h > +++ b/include/linux/perf_event.h > @@ -64,30 +64,6 @@ struct perf_raw_record { > }; > > /* > - * single taken branch record layout: > - * > - * from: source instruction (may not always be a branch insn) > - * to: branch target > - * mispred: branch target was mispredicted > - * predicted: branch target was predicted > - * > - * support for mispred, predicted is optional. In case it > - * is not supported mispred = predicted = 0. > - * > - * in_tx: running in a hardware transaction > - * abort: aborting a hardware transaction > - */ > -struct perf_branch_entry { > - __u64 from; > - __u64 to; > - __u64 mispred:1, /* target mispredicted */ > - predicted:1,/* target predicted */ > - in_tx:1, /* in transaction */ > - abort:1, /* transaction abort */ > - reserved:60; > -}; > - > -/* > * branch stack layout: > * nr: number of taken branches stored in entries[] > * > diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h > index 0b1df41..c6e2f76 100644 > --- a/include/uapi/linux/perf_event.h > +++ b/include/uapi/linux/perf_event.h > @@ -685,4 +685,28 @@ union perf_mem_data_src { > #define PERF_MEM_S(a, s) \ > (((u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT) > > +/* > + * single taken branch record layout: > + * > + * from: source instruction (may not always be a branch insn) > + * to: branch target > + * mispred: branch target was mispredicted > + * predicted: branch target was predicted > + * > + * support for mispred, predicted is optional. In case it > + * is not supported mispred = predicted = 0. > + * > + * in_tx: running in a hardware transaction > + * abort: aborting a hardware transaction > + */ > +struct perf_branch_entry { > + __u64 from; > + __u64 to; > + __u64 mispred:1, /* target mispredicted */ > + predicted:1,/* target predicted */ > + in_tx:1, /* in transaction */ > + abort:1, /* transaction abort */ > + reserved:60; > +}; > + > #endif /* _UAPI_LINUX_PERF_EVENT_H */ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/