aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/kernel.h29
-rw-r--r--include/linux/ring_buffer.h15
2 files changed, 28 insertions, 16 deletions
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 08bf5da86676..d4614a8a034b 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -369,8 +369,35 @@ static inline char *pack_hex_byte(char *buf, u8 byte)
369 369
370/* 370/*
371 * General tracing related utility functions - trace_printk(), 371 * General tracing related utility functions - trace_printk(),
372 * tracing_start()/tracing_stop: 372 * tracing_on/tracing_off and tracing_start()/tracing_stop
373 *
374 * Use tracing_on/tracing_off when you want to quickly turn on or off
375 * tracing. It simply enables or disables the recording of the trace events.
376 * This also corresponds to the user space debugfs/tracing/tracing_on
377 * file, which gives a means for the kernel and userspace to interact.
378 * Place a tracing_off() in the kernel where you want tracing to end.
379 * From user space, examine the trace, and then echo 1 > tracing_on
380 * to continue tracing.
381 *
382 * tracing_stop/tracing_start has slightly more overhead. It is used
383 * by things like suspend to ram where disabling the recording of the
384 * trace is not enough, but tracing must actually stop because things
385 * like calling smp_processor_id() may crash the system.
386 *
387 * Most likely, you want to use tracing_on/tracing_off.
373 */ 388 */
389#ifdef CONFIG_RING_BUFFER
390void tracing_on(void);
391void tracing_off(void);
392/* trace_off_permanent stops recording with no way to bring it back */
393void tracing_off_permanent(void);
394int tracing_is_on(void);
395#else
396static inline void tracing_on(void) { }
397static inline void tracing_off(void) { }
398static inline void tracing_off_permanent(void) { }
399static inline int tracing_is_on(void) { return 0; }
400#endif
374#ifdef CONFIG_TRACING 401#ifdef CONFIG_TRACING
375extern void tracing_start(void); 402extern void tracing_start(void);
376extern void tracing_stop(void); 403extern void tracing_stop(void);
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);
124size_t ring_buffer_page_len(void *page); 124size_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
131void tracing_on(void);
132void tracing_off(void);
133void tracing_off_permanent(void);
134int tracing_is_on(void);
135#else
136static inline void tracing_on(void) { }
137static inline void tracing_off(void) { }
138static inline void tracing_off_permanent(void) { }
139static inline int tracing_is_on(void) { return 0; }
140#endif
141
142void *ring_buffer_alloc_read_page(struct ring_buffer *buffer); 127void *ring_buffer_alloc_read_page(struct ring_buffer *buffer);
143void ring_buffer_free_read_page(struct ring_buffer *buffer, void *data); 128void ring_buffer_free_read_page(struct ring_buffer *buffer, void *data);
144int ring_buffer_read_page(struct ring_buffer *buffer, void **data_page, 129int ring_buffer_read_page(struct ring_buffer *buffer, void **data_page,