[RFC PATCH v2 0/2] printk: new ringbuffer implementation

From: John Ogness
Date: Fri Jun 07 2019 - 12:28:32 EST


This is a follow-up RFC on the work to reimplement much of
the core of printk. The original thread can be seen here[0].

One of the results of that thread was that the work needs to
be broken up into several pieces. A roadmap was laid out[1]
and this RFC is for the base component of the first piece:
a new ringbuffer implementation for printk.

This series does not touch any existing printk code. It is
only the ringbuffer implementation. I am particularly
interested in feedback relating to the design of the
ringbuffer and the use of memory barriers.

The series also includes a test module that performs some
heavy writer stress testing. I have successfully run these
tests on a 16-core ARM64 platform.

John Ogness

[0] https://lkml.kernel.org/r/20190212143003.48446-1-john.ogness@xxxxxxxxxxxxx
[1] https://lkml.kernel.org/r/87y35hn6ih.fsf@xxxxxxxxxxxxx

John Ogness (2):
printk-rb: add a new printk ringbuffer implementation
printk-rb: add test module

Documentation/core-api/index.rst | 1 +
Documentation/core-api/printk-ringbuffer.rst | 104 +++
include/linux/printk_ringbuffer.h | 238 +++++++
lib/Makefile | 2 +
lib/printk_ringbuffer.c | 924 +++++++++++++++++++++++++++
lib/test_prb.c | 237 +++++++
6 files changed, 1506 insertions(+)
create mode 100644 Documentation/core-api/printk-ringbuffer.rst
create mode 100644 include/linux/printk_ringbuffer.h
create mode 100644 lib/printk_ringbuffer.c
create mode 100644 lib/test_prb.c