[PATCH 0/2] printk: replace ringbuffer

From: John Ogness
Date: Tue Jan 28 2020 - 11:20:20 EST


Hello,

After several RFC series [0][1][2][3][4], here is the first set of
patches to rework the printk subsystem. This first set of patches
only replace the existing ringbuffer implementation. No locking is
removed. No semantics/behavior of printk are changed.

The VMCOREINFO is updated, which will require changes to the
external crash [5] tool. I will be preparing a patch to add support
for the new VMCOREINFO.

This series is in line with the agreements [6] made at the meeting
during LPC2019 in Lisbon, with 1 exception: support for dictionaries
will _not_ be discontinued [7]. Dictionaries are stored in a separate
buffer so that they cannot interfere with the human-readable buffer.

John Ogness

[0] https://lkml.kernel.org/r/20190212143003.48446-1-john.ogness@xxxxxxxxxxxxx
[1] https://lkml.kernel.org/r/20190607162349.18199-1-john.ogness@xxxxxxxxxxxxx
[2] https://lkml.kernel.org/r/20190727013333.11260-1-john.ogness@xxxxxxxxxxxxx
[3] https://lkml.kernel.org/r/20190807222634.1723-1-john.ogness@xxxxxxxxxxxxx
[4] https://lkml.kernel.org/r/20191128015235.12940-1-john.ogness@xxxxxxxxxxxxx
[5] https://github.com/crash-utility/crash
[6] https://lkml.kernel.org/r/87k1acz5rx.fsf@xxxxxxxxxxxxx
[7] https://lkml.kernel.org/r/20191007120134.ciywr3wale4gxa6v@xxxxxxxxxxxxxxx

John Ogness (2):
printk: add lockless buffer
printk: use the lockless ringbuffer

include/linux/kmsg_dump.h | 2 -
kernel/printk/Makefile | 1 +
kernel/printk/printk.c | 836 +++++++++---------
kernel/printk/printk_ringbuffer.c | 1370 +++++++++++++++++++++++++++++
kernel/printk/printk_ringbuffer.h | 328 +++++++
5 files changed, 2114 insertions(+), 423 deletions(-)
create mode 100644 kernel/printk/printk_ringbuffer.c
create mode 100644 kernel/printk/printk_ringbuffer.h

--
2.20.1