printk: move dictionary keys to dev_printk_info
authorJohn Ogness <john.ogness@linutronix.de>
Mon, 21 Sep 2020 11:18:45 +0000 (13:24 +0206)
committerPetr Mladek <pmladek@suse.com>
Tue, 22 Sep 2020 09:27:48 +0000 (11:27 +0200)
commit74caba7f2a0685575b3ee5330a118f5922485e02
treeeb195b5d665b166c8158af3bcdc151d2b84b447f
parentcfe2790b163acdc9c058a63bff310923e84a16b4
printk: move dictionary keys to dev_printk_info

Dictionaries are only used for SUBSYSTEM and DEVICE properties. The
current implementation stores the property names each time they are
used. This requires more space than otherwise necessary. Also,
because the dictionary entries are currently considered optional,
it cannot be relied upon that they are always available, even if the
writer wanted to store them. These issues will increase should new
dictionary properties be introduced.

Rather than storing the subsystem and device properties in the
dict ring, introduce a struct dev_printk_info with separate fields
to store only the property values. Embed this struct within the
struct printk_info to provide guaranteed availability.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/87mu1jl6ne.fsf@jogness.linutronix.de
Documentation/admin-guide/kdump/gdbmacros.txt
drivers/base/core.c
include/linux/dev_printk.h
include/linux/printk.h
kernel/printk/internal.h
kernel/printk/printk.c
kernel/printk/printk_ringbuffer.h
kernel/printk/printk_safe.c
scripts/gdb/linux/dmesg.py