aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/ring_buffer.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-11-06 16:30:20 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2015-11-06 16:30:20 -0500
commit22402cd0af685c1a5d067c87db3051db7fff7709 (patch)
tree4f06ef31f643be28f3d4c92821df36b8ff321d9b /kernel/trace/ring_buffer.c
parent7c623cac4939fb36916c029609dd22e3dec0a014 (diff)
parentd227c3ae4e94e5eb11dd780a811f59e1a7b74ccd (diff)
Merge tag 'trace-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracking updates from Steven Rostedt: "Most of the changes are clean ups and small fixes. Some of them have stable tags to them. I searched through my INBOX just as the merge window opened and found lots of patches to pull. I ran them through all my tests and they were in linux-next for a few days. Features added this release: ---------------------------- - Module globbing. You can now filter function tracing to several modules. # echo '*:mod:*snd*' > set_ftrace_filter (Dmitry Safonov) - Tracer specific options are now visible even when the tracer is not active. It was rather annoying that you can only see and modify tracer options after enabling the tracer. Now they are in the options/ directory even when the tracer is not active. Although they are still only visible when the tracer is active in the trace_options file. - Trace options are now per instance (although some of the tracer specific options are global) - New tracefs file: set_event_pid. If any pid is added to this file, then all events in the instance will filter out events that are not part of this pid. sched_switch and sched_wakeup events handle next and the wakee pids" * tag 'trace-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (68 commits) tracefs: Fix refcount imbalance in start_creating() tracing: Put back comma for empty fields in boot string parsing tracing: Apply tracer specific options from kernel command line. tracing: Add some documentation about set_event_pid ring_buffer: Remove unneeded smp_wmb() before wakeup of reader benchmark tracing: Allow dumping traces without tracking trace started cpus ring_buffer: Fix more races when terminating the producer in the benchmark ring_buffer: Do no not complete benchmark reader too early tracing: Remove redundant TP_ARGS redefining tracing: Rename max_stack_lock to stack_trace_max_lock tracing: Allow arch-specific stack tracer recordmcount: arm64: Replace the ignored mcount call into nop recordmcount: Fix endianness handling bug for nop_mcount tracepoints: Fix documentation of RCU lockdep checks tracing: ftrace_event_is_function() can return boolean tracing: is_legal_op() can return boolean ring-buffer: rb_event_is_commit() can return boolean ring-buffer: rb_per_cpu_empty() can return boolean ring_buffer: ring_buffer_empty{cpu}() can return boolean ring-buffer: rb_is_reader_page() can return boolean ...
Diffstat (limited to 'kernel/trace/ring_buffer.c')
-rw-r--r--kernel/trace/ring_buffer.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index fc347f8b1bca..75f1d05ea82d 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -829,7 +829,7 @@ rb_is_head_page(struct ring_buffer_per_cpu *cpu_buffer,
829 * writer is ever on it, the previous pointer never points 829 * writer is ever on it, the previous pointer never points
830 * back to the reader page. 830 * back to the reader page.
831 */ 831 */
832static int rb_is_reader_page(struct buffer_page *page) 832static bool rb_is_reader_page(struct buffer_page *page)
833{ 833{
834 struct list_head *list = page->list.prev; 834 struct list_head *list = page->list.prev;
835 835
@@ -2270,7 +2270,7 @@ rb_add_time_stamp(struct ring_buffer_event *event, u64 delta)
2270 return skip_time_extend(event); 2270 return skip_time_extend(event);
2271} 2271}
2272 2272
2273static inline int rb_event_is_commit(struct ring_buffer_per_cpu *cpu_buffer, 2273static inline bool rb_event_is_commit(struct ring_buffer_per_cpu *cpu_buffer,
2274 struct ring_buffer_event *event); 2274 struct ring_buffer_event *event);
2275 2275
2276/** 2276/**
@@ -2498,7 +2498,7 @@ static inline void rb_event_discard(struct ring_buffer_event *event)
2498 event->time_delta = 1; 2498 event->time_delta = 1;
2499} 2499}
2500 2500
2501static inline int 2501static inline bool
2502rb_event_is_commit(struct ring_buffer_per_cpu *cpu_buffer, 2502rb_event_is_commit(struct ring_buffer_per_cpu *cpu_buffer,
2503 struct ring_buffer_event *event) 2503 struct ring_buffer_event *event)
2504{ 2504{
@@ -3039,7 +3039,7 @@ int ring_buffer_write(struct ring_buffer *buffer,
3039} 3039}
3040EXPORT_SYMBOL_GPL(ring_buffer_write); 3040EXPORT_SYMBOL_GPL(ring_buffer_write);
3041 3041
3042static int rb_per_cpu_empty(struct ring_buffer_per_cpu *cpu_buffer) 3042static bool rb_per_cpu_empty(struct ring_buffer_per_cpu *cpu_buffer)
3043{ 3043{
3044 struct buffer_page *reader = cpu_buffer->reader_page; 3044 struct buffer_page *reader = cpu_buffer->reader_page;
3045 struct buffer_page *head = rb_set_head_page(cpu_buffer); 3045 struct buffer_page *head = rb_set_head_page(cpu_buffer);
@@ -3047,7 +3047,7 @@ static int rb_per_cpu_empty(struct ring_buffer_per_cpu *cpu_buffer)
3047 3047
3048 /* In case of error, head will be NULL */ 3048 /* In case of error, head will be NULL */
3049 if (unlikely(!head)) 3049 if (unlikely(!head))
3050 return 1; 3050 return true;
3051 3051
3052 return reader->read == rb_page_commit(reader) && 3052 return reader->read == rb_page_commit(reader) &&
3053 (commit == reader || 3053 (commit == reader ||
@@ -4267,7 +4267,7 @@ EXPORT_SYMBOL_GPL(ring_buffer_reset);
4267 * rind_buffer_empty - is the ring buffer empty? 4267 * rind_buffer_empty - is the ring buffer empty?
4268 * @buffer: The ring buffer to test 4268 * @buffer: The ring buffer to test
4269 */ 4269 */
4270int ring_buffer_empty(struct ring_buffer *buffer) 4270bool ring_buffer_empty(struct ring_buffer *buffer)
4271{ 4271{
4272 struct ring_buffer_per_cpu *cpu_buffer; 4272 struct ring_buffer_per_cpu *cpu_buffer;
4273 unsigned long flags; 4273 unsigned long flags;
@@ -4285,10 +4285,10 @@ int ring_buffer_empty(struct ring_buffer *buffer)
4285 local_irq_restore(flags); 4285 local_irq_restore(flags);
4286 4286
4287 if (!ret) 4287 if (!ret)
4288 return 0; 4288 return false;
4289 } 4289 }
4290 4290
4291 return 1; 4291 return true;
4292} 4292}
4293EXPORT_SYMBOL_GPL(ring_buffer_empty); 4293EXPORT_SYMBOL_GPL(ring_buffer_empty);
4294 4294
@@ -4297,7 +4297,7 @@ EXPORT_SYMBOL_GPL(ring_buffer_empty);
4297 * @buffer: The ring buffer 4297 * @buffer: The ring buffer
4298 * @cpu: The CPU buffer to test 4298 * @cpu: The CPU buffer to test
4299 */ 4299 */
4300int ring_buffer_empty_cpu(struct ring_buffer *buffer, int cpu) 4300bool ring_buffer_empty_cpu(struct ring_buffer *buffer, int cpu)
4301{ 4301{
4302 struct ring_buffer_per_cpu *cpu_buffer; 4302 struct ring_buffer_per_cpu *cpu_buffer;
4303 unsigned long flags; 4303 unsigned long flags;
@@ -4305,7 +4305,7 @@ int ring_buffer_empty_cpu(struct ring_buffer *buffer, int cpu)
4305 int ret; 4305 int ret;
4306 4306
4307 if (!cpumask_test_cpu(cpu, buffer->cpumask)) 4307 if (!cpumask_test_cpu(cpu, buffer->cpumask))
4308 return 1; 4308 return true;
4309 4309
4310 cpu_buffer = buffer->buffers[cpu]; 4310 cpu_buffer = buffer->buffers[cpu];
4311 local_irq_save(flags); 4311 local_irq_save(flags);