Messages in this thread | | | Subject | Re: [PATCH] perf_counter: extensible perf_counter_attr | From | Peter Zijlstra <> | Date | Mon, 08 Jun 2009 21:51:20 +0200 |
| |
On Mon, 2009-06-08 at 12:02 -0700, Corey Ashford wrote: > 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:
Ah, the idea was to do something like:
struct perf_counter_attr_feature { struct perf_counter_attr_ext head; ... more stuff ... };
and set head.perf_attr_ext_type = PERF_ATTR_EXT_FEATURE
| |