diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/perf_counter.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/include/linux/perf_counter.h b/include/linux/perf_counter.h index 4b14a8e9dbf5..dfb4c7ce18b3 100644 --- a/include/linux/perf_counter.h +++ b/include/linux/perf_counter.h | |||
@@ -114,6 +114,7 @@ struct perf_counter_hw_event { | |||
114 | #include <linux/rculist.h> | 114 | #include <linux/rculist.h> |
115 | #include <linux/rcupdate.h> | 115 | #include <linux/rcupdate.h> |
116 | #include <linux/spinlock.h> | 116 | #include <linux/spinlock.h> |
117 | #include <linux/hrtimer.h> | ||
117 | #include <asm/atomic.h> | 118 | #include <asm/atomic.h> |
118 | 119 | ||
119 | struct task_struct; | 120 | struct task_struct; |
@@ -123,12 +124,19 @@ struct task_struct; | |||
123 | */ | 124 | */ |
124 | struct hw_perf_counter { | 125 | struct hw_perf_counter { |
125 | #ifdef CONFIG_PERF_COUNTERS | 126 | #ifdef CONFIG_PERF_COUNTERS |
126 | u64 config; | 127 | union { |
127 | unsigned long config_base; | 128 | struct { /* hardware */ |
128 | unsigned long counter_base; | 129 | u64 config; |
129 | int nmi; | 130 | unsigned long config_base; |
130 | unsigned int idx; | 131 | unsigned long counter_base; |
131 | atomic64_t count; /* software */ | 132 | int nmi; |
133 | unsigned int idx; | ||
134 | }; | ||
135 | union { /* software */ | ||
136 | atomic64_t count; | ||
137 | struct hrtimer hrtimer; | ||
138 | }; | ||
139 | }; | ||
132 | atomic64_t prev_count; | 140 | atomic64_t prev_count; |
133 | u64 irq_period; | 141 | u64 irq_period; |
134 | atomic64_t period_left; | 142 | atomic64_t period_left; |