aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/oprofile/cpu_buffer.c
diff options
context:
space:
mode:
authorRobert Richter <robert.richter@amd.com>2008-11-27 12:36:08 -0500
committerRobert Richter <robert.richter@amd.com>2008-12-10 08:20:14 -0500
commit229234ae4a5ed9376b2e0524da04b0e5edadbf76 (patch)
tree9f0434cbac64aa2d040b0b806d239b2335c163e1 /drivers/oprofile/cpu_buffer.c
parent7d468abee0f1a7e918b5e2f23120436a54ba9f33 (diff)
oprofile: adding cpu_buffer_write_commit()
This is in preparation for changes in the cpu buffer implementation. Signed-off-by: Robert Richter <robert.richter@amd.com>
Diffstat (limited to 'drivers/oprofile/cpu_buffer.c')
-rw-r--r--drivers/oprofile/cpu_buffer.c18
1 files changed, 1 insertions, 17 deletions
diff --git a/drivers/oprofile/cpu_buffer.c b/drivers/oprofile/cpu_buffer.c
index 7e5e650e409f..d6f5de686363 100644
--- a/drivers/oprofile/cpu_buffer.c
+++ b/drivers/oprofile/cpu_buffer.c
@@ -148,22 +148,6 @@ static unsigned long nr_available_slots(struct oprofile_cpu_buffer const *b)
148 return tail + (b->buffer_size - head) - 1; 148 return tail + (b->buffer_size - head) - 1;
149} 149}
150 150
151static void increment_head(struct oprofile_cpu_buffer *b)
152{
153 unsigned long new_head = b->head_pos + 1;
154
155 /*
156 * Ensure anything written to the slot before we increment is
157 * visible
158 */
159 wmb();
160
161 if (new_head < b->buffer_size)
162 b->head_pos = new_head;
163 else
164 b->head_pos = 0;
165}
166
167static inline void 151static inline void
168add_sample(struct oprofile_cpu_buffer *cpu_buf, 152add_sample(struct oprofile_cpu_buffer *cpu_buf,
169 unsigned long pc, unsigned long event) 153 unsigned long pc, unsigned long event)
@@ -171,7 +155,7 @@ add_sample(struct oprofile_cpu_buffer *cpu_buf,
171 struct op_sample *entry = cpu_buffer_write_entry(cpu_buf); 155 struct op_sample *entry = cpu_buffer_write_entry(cpu_buf);
172 entry->eip = pc; 156 entry->eip = pc;
173 entry->event = event; 157 entry->event = event;
174 increment_head(cpu_buf); 158 cpu_buffer_write_commit(cpu_buf);
175} 159}
176 160
177static inline void 161static inline void