ring-buffer: Read and write to ring buffers with custom sub buffer size
As the size of the ring sub buffer page can be changed dynamically, the logic that reads and writes to the buffer should be fixed to take that into account. Some internal ring buffer APIs are changed: ring_buffer_alloc_read_page() ring_buffer_free_read_page() ring_buffer_read_page() A new API is introduced: ring_buffer_read_page_data() Link: https://lore.kernel.org/linux-trace-devel/20211213094825.61876-6-tz.stoyanov@gmail.com Link: https://lore.kernel.org/linux-trace-kernel/20231219185628.875145995@goodmis.org Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Vincent Donnefort <vdonnefort@google.com> Cc: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com> [ Fixed kerneldoc on data_page parameter in ring_buffer_free_read_page() ] Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
committed by
Steven Rostedt (Google)
parent
f9b94daa54
commit
bce761d757
@@ -192,10 +192,15 @@ bool ring_buffer_time_stamp_abs(struct trace_buffer *buffer);
|
||||
size_t ring_buffer_nr_pages(struct trace_buffer *buffer, int cpu);
|
||||
size_t ring_buffer_nr_dirty_pages(struct trace_buffer *buffer, int cpu);
|
||||
|
||||
void *ring_buffer_alloc_read_page(struct trace_buffer *buffer, int cpu);
|
||||
void ring_buffer_free_read_page(struct trace_buffer *buffer, int cpu, void *data);
|
||||
int ring_buffer_read_page(struct trace_buffer *buffer, void **data_page,
|
||||
struct buffer_data_read_page;
|
||||
struct buffer_data_read_page *
|
||||
ring_buffer_alloc_read_page(struct trace_buffer *buffer, int cpu);
|
||||
void ring_buffer_free_read_page(struct trace_buffer *buffer, int cpu,
|
||||
struct buffer_data_read_page *page);
|
||||
int ring_buffer_read_page(struct trace_buffer *buffer,
|
||||
struct buffer_data_read_page *data_page,
|
||||
size_t len, int cpu, int full);
|
||||
void *ring_buffer_read_page_data(struct buffer_data_read_page *page);
|
||||
|
||||
struct trace_seq;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user