[PATCH printk v2 0/3] printk: move dictionaries to meta data

From: John Ogness
Date: Fri Sep 18 2020 - 18:34:25 EST


Hello,

Here is v2 for a series to move all existing dictionary
properties (SUBSYSTEM and DEVICE) into the meta data of a
record, thus eliminating the need for the dict ring. This
change affects how the dictionaries are stored, but does not
affect how they are presented to userspace. (v1 is here [0]).

The main purpose of the change is to address concerns [1]
about the reliability of dictionary properties as well as
allowing to efficiently expand the type and amount of
meta data available [2].

This series is based heavily on the proof of concept [3] from
Petr Mladek. (Petr, feel free to add Co-developed-by tags.)

The series is based on the printk-rework branch of the printk
git tree:

f5f022e53b87 ("printk: reimplement log_cont using record extension")

The list of changes since v1:

drivers/base/core.c
===================

- set_dev_info(): use strscpy() instead of snprintf() (thank
you Rasmus Villemoes)

kernel/printk/printk.c
======================

- setup_log_buf(): fix cleanup in error handling

- log_buf_vmcoreinfo_setup(): add VMCOREINFO for
struct dev_printk_info array sizes so that crash tools
do not need to rely on property value termination

John Ogness

[0] https://lkml.kernel.org/r/20200917131644.25838-1-john.ogness@xxxxxxxxxxxxx
[1] https://lkml.kernel.org/r/20200904151336.GC20558@alley
[2] https://lkml.kernel.org/r/008801d684f9$43e1c140$cba543c0$@samsung.com
[3] https://lkml.kernel.org/r/20200911095035.GI3864@alley

John Ogness (3):
printk: move printk_info into separate array
printk: move dictionary keys to dev_printk_info
printk: remove dict ring

Documentation/admin-guide/kdump/gdbmacros.txt | 73 ++---
drivers/base/core.c | 46 +--
include/linux/dev_printk.h | 8 +
include/linux/printk.h | 6 +-
kernel/printk/internal.h | 4 +-
kernel/printk/printk.c | 221 ++++++-------
kernel/printk/printk_ringbuffer.c | 292 ++++++++----------
kernel/printk/printk_ringbuffer.h | 95 ++----
kernel/printk/printk_safe.c | 2 +-
scripts/gdb/linux/dmesg.py | 16 +-
10 files changed, 346 insertions(+), 417 deletions(-)

--
2.20.1