Messages in this thread | | | Date | Mon, 08 Jun 2009 12:02:25 -0700 | From | Corey Ashford <> | Subject | Re: [PATCH] perf_counter: extensible perf_counter_attr |
| |
Hi Peter,
Peter Zijlstra wrote: > Allow extending the perf_counter_attr structure by linking extended > structures to it. > > Also, should we grow the directly reserved space in the structure a > little more? > > Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> > --- > include/linux/perf_counter.h | 7 +++++++ > kernel/perf_counter.c | 1 + > 2 files changed, 8 insertions(+), 0 deletions(-) > > diff --git a/include/linux/perf_counter.h b/include/linux/perf_counter.h > index 3586df8..781d8ce 100644 > --- a/include/linux/perf_counter.h > +++ b/include/linux/perf_counter.h > @@ -175,6 +175,13 @@ struct perf_counter_attr { > __u32 __reserved_3; > > __u64 __reserved_4; > + > + struct perf_counter_attr_ext *ext_attrs; > +}; > + > +struct perf_counter_attr_ext { > + struct perf_counter_attr_ext *next; > + __u64 perf_attr_ext_type; > };
Let's say I want to extend the attributes by four 64-bit quantities... from the above definition, I'd need four additional records chained together, right? How about something like this instead:
struct perf_counter_attr_ext { __u32 num_perf_attrs; __u64 *perf_attr_ext; };
Another alternative would be to place these two fields into perf_counter_attr and so eliminate the extra level of indirection.
Regards,
- Corey
Corey Ashford Software Engineer IBM Linux Technology Center, Linux Toolchain cjashfor@us.ibm.com
| |