Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>

authored by

Vincent Donnefort and committed by
Steven Rostedt (Google)
7d776a36 1f318b96

+6 -4
+4 -4
include/uapi/linux/trace_mmap.h
··· 17 17 * @entries: Number of entries in the ring-buffer. 18 18 * @overrun: Number of entries lost in the ring-buffer. 19 19 * @read: Number of entries that have been read. 20 - * @Reserved1: Internal use only. 21 - * @Reserved2: Internal use only. 20 + * @pages_lost: Number of pages overwritten by the writer. 21 + * @pages_touched: Number of pages written by the writer. 22 22 */ 23 23 struct trace_buffer_meta { 24 24 __u32 meta_page_size; ··· 39 39 __u64 overrun; 40 40 __u64 read; 41 41 42 - __u64 Reserved1; 43 - __u64 Reserved2; 42 + __u64 pages_lost; 43 + __u64 pages_touched; 44 44 }; 45 45 46 46 #define TRACE_MMAP_IOCTL_GET_READER _IO('R', 0x20)
+2
kernel/trace/ring_buffer.c
··· 6154 6154 meta->entries = local_read(&cpu_buffer->entries); 6155 6155 meta->overrun = local_read(&cpu_buffer->overrun); 6156 6156 meta->read = cpu_buffer->read; 6157 + meta->pages_lost = local_read(&cpu_buffer->pages_lost); 6158 + meta->pages_touched = local_read(&cpu_buffer->pages_touched); 6157 6159 6158 6160 /* Some archs do not have data cache coherency between kernel and user-space */ 6159 6161 flush_kernel_vmap_range(cpu_buffer->meta_page, PAGE_SIZE);