diff options
author | Steven Rostedt <srostedt@redhat.com> | 2009-09-03 10:12:13 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2009-09-04 11:25:27 -0400 |
commit | 1b959e18c4d6b4b981f887260b0f8e7939efa411 (patch) | |
tree | 3f7b9950cfe19742cfe04bc3feb11f7ad0a46e71 /kernel/trace/ring_buffer.c | |
parent | 98277991a99734f3a31d638afb47d4484ac73e43 (diff) |
ring-buffer: remove unnecessary cpu_relax
The loops in the ring buffer that use cpu_relax are not dependent on
other CPUs. They simply came across some padding in the ring buffer and
are skipping over them. It is a normal loop and does not require a
cpu_relax.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/ring_buffer.c')
-rw-r--r-- | kernel/trace/ring_buffer.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 2878bd43a59c..a05541a8fbae 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
@@ -3132,10 +3132,8 @@ ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts) | |||
3132 | spin_unlock(&cpu_buffer->reader_lock); | 3132 | spin_unlock(&cpu_buffer->reader_lock); |
3133 | local_irq_restore(flags); | 3133 | local_irq_restore(flags); |
3134 | 3134 | ||
3135 | if (event && event->type_len == RINGBUF_TYPE_PADDING) { | 3135 | if (event && event->type_len == RINGBUF_TYPE_PADDING) |
3136 | cpu_relax(); | ||
3137 | goto again; | 3136 | goto again; |
3138 | } | ||
3139 | 3137 | ||
3140 | return event; | 3138 | return event; |
3141 | } | 3139 | } |
@@ -3160,10 +3158,8 @@ ring_buffer_iter_peek(struct ring_buffer_iter *iter, u64 *ts) | |||
3160 | event = rb_iter_peek(iter, ts); | 3158 | event = rb_iter_peek(iter, ts); |
3161 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); | 3159 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); |
3162 | 3160 | ||
3163 | if (event && event->type_len == RINGBUF_TYPE_PADDING) { | 3161 | if (event && event->type_len == RINGBUF_TYPE_PADDING) |
3164 | cpu_relax(); | ||
3165 | goto again; | 3162 | goto again; |
3166 | } | ||
3167 | 3163 | ||
3168 | return event; | 3164 | return event; |
3169 | } | 3165 | } |
@@ -3209,10 +3205,8 @@ ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts) | |||
3209 | out: | 3205 | out: |
3210 | preempt_enable(); | 3206 | preempt_enable(); |
3211 | 3207 | ||
3212 | if (event && event->type_len == RINGBUF_TYPE_PADDING) { | 3208 | if (event && event->type_len == RINGBUF_TYPE_PADDING) |
3213 | cpu_relax(); | ||
3214 | goto again; | 3209 | goto again; |
3215 | } | ||
3216 | 3210 | ||
3217 | return event; | 3211 | return event; |
3218 | } | 3212 | } |
@@ -3302,10 +3296,8 @@ ring_buffer_read(struct ring_buffer_iter *iter, u64 *ts) | |||
3302 | out: | 3296 | out: |
3303 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); | 3297 | spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); |
3304 | 3298 | ||
3305 | if (event && event->type_len == RINGBUF_TYPE_PADDING) { | 3299 | if (event && event->type_len == RINGBUF_TYPE_PADDING) |
3306 | cpu_relax(); | ||
3307 | goto again; | 3300 | goto again; |
3308 | } | ||
3309 | 3301 | ||
3310 | return event; | 3302 | return event; |
3311 | } | 3303 | } |