ANDROID: ring-buffer: Handle external writer reader_page fast-forward
In order to support dump on panic, the external writer might fast-forward the reader-page to make sure the very last events can be read. Bug: 357781595 Bug: 391974813 Change-Id: I5b2473756a3350de8b0b808b54df662b8a77c6ad Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
This commit is contained in:
@@ -5286,8 +5286,9 @@ __rb_get_reader_page_from_writer(struct ring_buffer_per_cpu *cpu_buffer)
|
||||
}
|
||||
|
||||
prev_reader = cpu_buffer->meta_page->reader.id;
|
||||
if (cpu_buffer->meta_page->reader.id == cpu_buffer->reader_page->id)
|
||||
WARN_ON(cpu_buffer->writer->get_reader_page(cpu_buffer->cpu));
|
||||
|
||||
WARN_ON(cpu_buffer->writer->get_reader_page(cpu_buffer->cpu));
|
||||
/* nr_pages doesn't include the reader page */
|
||||
if (cpu_buffer->meta_page->reader.id > cpu_buffer->nr_pages) {
|
||||
WARN_ON(1);
|
||||
@@ -5301,7 +5302,8 @@ __rb_get_reader_page_from_writer(struct ring_buffer_per_cpu *cpu_buffer)
|
||||
cpu_buffer->read_stamp = cpu_buffer->reader_page->page->time_stamp;
|
||||
cpu_buffer->lost_events = cpu_buffer->meta_page->reader.lost_events;
|
||||
|
||||
WARN_ON(prev_reader == cpu_buffer->meta_page->reader.id);
|
||||
WARN_ON(!IS_ENABLED(CONFIG_PKVM_DUMP_TRACE_ON_PANIC) &&
|
||||
prev_reader == cpu_buffer->meta_page->reader.id);
|
||||
|
||||
if (!rb_page_size(cpu_buffer->reader_page))
|
||||
return NULL;
|
||||
|
||||
Reference in New Issue
Block a user