diff options
author | Steven Rostedt <srostedt@redhat.com> | 2009-09-04 14:24:40 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2009-09-04 19:42:22 -0400 |
commit | 85bac32c4a52c592b857f2c360cc5ec93a097d70 (patch) | |
tree | 510e516dd5fa388cb9582a2f6b055f3725fbf2c1 /kernel/trace/ring_buffer.c | |
parent | 62f0b3eb5cb58931a02ee4e599e19c80a171e351 (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.c | 4 |
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 | } |
3499 | EXPORT_SYMBOL_GPL(ring_buffer_empty_cpu); | 3501 | EXPORT_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 | } |
3575 | EXPORT_SYMBOL_GPL(ring_buffer_swap_cpu); | 3578 | EXPORT_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 |