diff options
author | Steven Rostedt <srostedt@redhat.com> | 2009-03-05 10:35:56 -0500 |
---|---|---|
committer | Steven Rostedt <srostedt@redhat.com> | 2009-03-05 10:35:56 -0500 |
commit | 2002c258faaa8f89543df284fdbaa9e4b171547f (patch) | |
tree | 225ad21ef3714638d67136db5a5cfc399d81c133 /include/linux/ring_buffer.h | |
parent | 526211bc58c4b3265352801c5a7f469af5c34711 (diff) |
tracing: add tracing_on/tracing_off to kernel.h
Impact: cleanup
The functions tracing_start/tracing_stop have been moved to kernel.h.
These are not the functions a developer most likely wants to use
when they want to insert a place to stop tracing and restart it from
user space.
tracing_start/tracing_stop was created to work with things like
suspend to ram, where even calling smp_processor_id() can crash the
system. The tracing_start/tracing_stop was used to stop the tracer from
doing anything. These are still light weight functions, but add a bit
more overhead to be able to stop the tracers. They also have no interface
back to userland. That is, if the kernel calls tracing_stop, userland
can not start tracing.
What a developer most likely wants to use is tracing_on/tracing_off.
These are very light weight functions (simply sets or clears a bit).
These functions just stop recording into the ring buffer. The tracers
don't even know that this happens except that they would receive NULL
from the ring_buffer_lock_reserve function.
Also, there's a way for the user land to enable or disable this bit.
In debugfs/tracing/tracing_on, a user may echo "0" (same as tracing_off())
or echo "1" (same as tracing_on()) into this file. This becomes handy when
a kernel developer is debugging and wants tracing to turn off when it
hits an anomaly. Then the developer can examine the trace, and restart
tracing if they want to try again (echo 1 > tracing_on).
This patch moves the prototypes for tracing_on/tracing_off to kernel.h
and comments their use, so that a kernel developer will know how
to use them.
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Diffstat (limited to 'include/linux/ring_buffer.h')
-rw-r--r-- | include/linux/ring_buffer.h | 15 |
1 files changed, 0 insertions, 15 deletions
diff --git a/include/linux/ring_buffer.h b/include/linux/ring_buffer.h index 79fcbc4b09d6..b1a0068a5557 100644 --- a/include/linux/ring_buffer.h +++ b/include/linux/ring_buffer.h | |||
@@ -124,21 +124,6 @@ void ring_buffer_normalize_time_stamp(int cpu, u64 *ts); | |||
124 | size_t ring_buffer_page_len(void *page); | 124 | size_t ring_buffer_page_len(void *page); |
125 | 125 | ||
126 | 126 | ||
127 | /* | ||
128 | * The below functions are fine to use outside the tracing facility. | ||
129 | */ | ||
130 | #ifdef CONFIG_RING_BUFFER | ||
131 | void tracing_on(void); | ||
132 | void tracing_off(void); | ||
133 | void tracing_off_permanent(void); | ||
134 | int tracing_is_on(void); | ||
135 | #else | ||
136 | static inline void tracing_on(void) { } | ||
137 | static inline void tracing_off(void) { } | ||
138 | static inline void tracing_off_permanent(void) { } | ||
139 | static inline int tracing_is_on(void) { return 0; } | ||
140 | #endif | ||
141 | |||
142 | void *ring_buffer_alloc_read_page(struct ring_buffer *buffer); | 127 | void *ring_buffer_alloc_read_page(struct ring_buffer *buffer); |
143 | void ring_buffer_free_read_page(struct ring_buffer *buffer, void *data); | 128 | void ring_buffer_free_read_page(struct ring_buffer *buffer, void *data); |
144 | int ring_buffer_read_page(struct ring_buffer *buffer, void **data_page, | 129 | int ring_buffer_read_page(struct ring_buffer *buffer, void **data_page, |