Commit 7d776a36 authored by Vincent Donnefort's avatar Vincent Donnefort Committed by Steven Rostedt (Google)
Browse files

ring-buffer: Add page statistics to the meta-page

Add two fields pages_touched and pages_lost to the ring-buffer
meta-page. Those fields are useful to get the number of used pages in
the ring-buffer.

Link: https://patch.msgid.link/20260309162516.2623589-2-vdonnefort@google.com


Reviewed-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: default avatarVincent Donnefort <vdonnefort@google.com>
Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
parent 1f318b96
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -17,8 +17,8 @@
 * @entries:		Number of entries in the ring-buffer.
 * @overrun:		Number of entries lost in the ring-buffer.
 * @read:		Number of entries that have been read.
 * @Reserved1:		Internal use only.
 * @Reserved2:		Internal use only.
 * @pages_lost:		Number of pages overwritten by the writer.
 * @pages_touched:	Number of pages written by the writer.
 */
struct trace_buffer_meta {
	__u32		meta_page_size;
@@ -39,8 +39,8 @@ struct trace_buffer_meta {
	__u64	overrun;
	__u64	read;

	__u64	Reserved1;
	__u64	Reserved2;
	__u64	pages_lost;
	__u64	pages_touched;
};

#define TRACE_MMAP_IOCTL_GET_READER		_IO('R', 0x20)
+2 −0
Original line number Diff line number Diff line
@@ -6154,6 +6154,8 @@ static void rb_update_meta_page(struct ring_buffer_per_cpu *cpu_buffer)
	meta->entries = local_read(&cpu_buffer->entries);
	meta->overrun = local_read(&cpu_buffer->overrun);
	meta->read = cpu_buffer->read;
	meta->pages_lost = local_read(&cpu_buffer->pages_lost);
	meta->pages_touched = local_read(&cpu_buffer->pages_touched);

	/* Some archs do not have data cache coherency between kernel and user-space */
	flush_kernel_vmap_range(cpu_buffer->meta_page, PAGE_SIZE);