aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/ring_buffer.c
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2009-09-03 10:12:13 -0400
committerSteven Rostedt <rostedt@goodmis.org>2009-09-04 11:25:27 -0400
commit1b959e18c4d6b4b981f887260b0f8e7939efa411 (patch)
tree3f7b9950cfe19742cfe04bc3feb11f7ad0a46e71 /kernel/trace/ring_buffer.c
parent98277991a99734f3a31d638afb47d4484ac73e43 (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.c16
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}