diff options
author | Steven Rostedt (Red Hat) <rostedt@goodmis.org> | 2013-01-29 17:45:49 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2013-01-30 11:01:53 -0500 |
commit | ad964704ba9326d027fc10fd0099b7c880e50172 (patch) | |
tree | e08884c0f383e5b954233c323df67a3d726b6537 /kernel/trace | |
parent | 03274a3ffb449632970fdd35da72ea41cf8474da (diff) |
ring-buffer: Add stats field for amount read from trace ring buffer
Add a stat about the number of events read from the ring buffer:
# cat /debug/tracing/per_cpu/cpu0/stats
entries: 39869
overrun: 870512
commit overrun: 0
bytes: 1449912
oldest event ts: 6561.368690
now ts: 6565.246426
dropped events: 0
read events: 112 <-- Added
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace')
-rw-r--r-- | kernel/trace/ring_buffer.c | 18 | ||||
-rw-r--r-- | kernel/trace/trace.c | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 13950d9027cb..7244acde77b0 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
@@ -3103,6 +3103,24 @@ ring_buffer_dropped_events_cpu(struct ring_buffer *buffer, int cpu) | |||
3103 | EXPORT_SYMBOL_GPL(ring_buffer_dropped_events_cpu); | 3103 | EXPORT_SYMBOL_GPL(ring_buffer_dropped_events_cpu); |
3104 | 3104 | ||
3105 | /** | 3105 | /** |
3106 | * ring_buffer_read_events_cpu - get the number of events successfully read | ||
3107 | * @buffer: The ring buffer | ||
3108 | * @cpu: The per CPU buffer to get the number of events read | ||
3109 | */ | ||
3110 | unsigned long | ||
3111 | ring_buffer_read_events_cpu(struct ring_buffer *buffer, int cpu) | ||
3112 | { | ||
3113 | struct ring_buffer_per_cpu *cpu_buffer; | ||
3114 | |||
3115 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) | ||
3116 | return 0; | ||
3117 | |||
3118 | cpu_buffer = buffer->buffers[cpu]; | ||
3119 | return cpu_buffer->read; | ||
3120 | } | ||
3121 | EXPORT_SYMBOL_GPL(ring_buffer_read_events_cpu); | ||
3122 | |||
3123 | /** | ||
3106 | * ring_buffer_entries - get the number of entries in a buffer | 3124 | * ring_buffer_entries - get the number of entries in a buffer |
3107 | * @buffer: The ring buffer | 3125 | * @buffer: The ring buffer |
3108 | * | 3126 | * |
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index d399592701aa..90a1c71fdbfc 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -4430,6 +4430,9 @@ tracing_stats_read(struct file *filp, char __user *ubuf, | |||
4430 | cnt = ring_buffer_dropped_events_cpu(tr->buffer, cpu); | 4430 | cnt = ring_buffer_dropped_events_cpu(tr->buffer, cpu); |
4431 | trace_seq_printf(s, "dropped events: %ld\n", cnt); | 4431 | trace_seq_printf(s, "dropped events: %ld\n", cnt); |
4432 | 4432 | ||
4433 | cnt = ring_buffer_read_events_cpu(tr->buffer, cpu); | ||
4434 | trace_seq_printf(s, "read events: %ld\n", cnt); | ||
4435 | |||
4433 | count = simple_read_from_buffer(ubuf, count, ppos, s->buffer, s->len); | 4436 | count = simple_read_from_buffer(ubuf, count, ppos, s->buffer, s->len); |
4434 | 4437 | ||
4435 | kfree(s); | 4438 | kfree(s); |