Re: [PATCH] perf_counter: extensible perf_counter_attr

Corey Ashford
2009-06-08T19:02:49Z

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