aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/ring_buffer.c
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2009-09-04 14:24:40 -0400
committerSteven Rostedt <rostedt@goodmis.org>2009-09-04 19:42:22 -0400
commit85bac32c4a52c592b857f2c360cc5ec93a097d70 (patch)
tree510e516dd5fa388cb9582a2f6b055f3725fbf2c1 /kernel/trace/ring_buffer.c
parent62f0b3eb5cb58931a02ee4e599e19c80a171e351 (diff)
ring-buffer: only enable ring_buffer_swap_cpu when needed
Since the ability to swap the cpu buffers adds a small overhead to the recording of a trace, we only want to add it when needed. Only the irqsoff and preemptoff tracers use this feature, and both are not recommended for production kernels. This patch disables its use when neither irqsoff nor preemptoff is configured. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/ring_buffer.c')
-rw-r--r--kernel/trace/ring_buffer.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index 1766c0e8db5a..454e74e718cf 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -2084,6 +2084,7 @@ rb_reserve_next_event(struct ring_buffer *buffer,
2084 2084
2085 rb_start_commit(cpu_buffer); 2085 rb_start_commit(cpu_buffer);
2086 2086
2087#ifdef CONFIG_RING_BUFFER_ALLOW_SWAP
2087 /* 2088 /*
2088 * Due to the ability to swap a cpu buffer from a buffer 2089 * Due to the ability to swap a cpu buffer from a buffer
2089 * it is possible it was swapped before we committed. 2090 * it is possible it was swapped before we committed.
@@ -2096,6 +2097,7 @@ rb_reserve_next_event(struct ring_buffer *buffer,
2096 local_dec(&cpu_buffer->commits); 2097 local_dec(&cpu_buffer->commits);
2097 return NULL; 2098 return NULL;
2098 } 2099 }
2100#endif
2099 2101
2100 length = rb_calculate_event_length(length); 2102 length = rb_calculate_event_length(length);
2101 again: 2103 again:
@@ -3498,6 +3500,7 @@ int ring_buffer_empty_cpu(struct ring_buffer *buffer, int cpu)
3498} 3500}
3499EXPORT_SYMBOL_GPL(ring_buffer_empty_cpu); 3501EXPORT_SYMBOL_GPL(ring_buffer_empty_cpu);
3500 3502
3503#ifdef CONFIG_RING_BUFFER_ALLOW_SWAP
3501/** 3504/**
3502 * ring_buffer_swap_cpu - swap a CPU buffer between two ring buffers 3505 * ring_buffer_swap_cpu - swap a CPU buffer between two ring buffers
3503 * @buffer_a: One buffer to swap with 3506 * @buffer_a: One buffer to swap with
@@ -3573,6 +3576,7 @@ out:
3573 return ret; 3576 return ret;
3574} 3577}
3575EXPORT_SYMBOL_GPL(ring_buffer_swap_cpu); 3578EXPORT_SYMBOL_GPL(ring_buffer_swap_cpu);
3579#endif /* CONFIG_RING_BUFFER_ALLOW_SWAP */
3576 3580
3577/** 3581/**
3578 * ring_buffer_alloc_read_page - allocate a page to read from buffer 3582 * ring_buffer_alloc_read_page - allocate a page to read from buffer