[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