[PATCH] perf_counter: extensible perf_counter_attr

Peter Zijlstra
2009-06-08T17:26:09Z

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;
};

/*
diff --git a/kernel/perf_counter.c b/kernel/perf_counter.c
index 5eacaaf..606f662 100644
--- a/kernel/perf_counter.c
+++ b/kernel/perf_counter.c
@@ -3467,6 +3467,7 @@ perf_counter_alloc(struct perf_counter_attr *attr,

counter->cpu = cpu;
counter->attr = *attr;
+ counter->attr.ext_attrs = NULL;
counter->group_leader = group_leader;
counter->pmu = NULL;
counter->ctx = ctx;