printk: use printk_buffers for devkmsg
authorJohn Ogness <john.ogness@linutronix.de>
Mon, 9 Jan 2023 10:07:59 +0000 (11:13 +0106)
committerPetr Mladek <pmladek@suse.com>
Wed, 11 Jan 2023 14:35:12 +0000 (15:35 +0100)
commitea308da1198f8ca9de6e4ff7f22120e27d4e6338
tree0968f1f55c9ba80b3109983e6d248073223d2c92
parentc4fcc617e148791fc45fd33b124301cb596bcbf6
printk: use printk_buffers for devkmsg

Replace the buffers in struct devkmsg_user with a struct
printk_buffers. This reduces the number of buffers to keep track of.

As a side-effect, @text_buf was 8kB large, even though it only
needed to be the max size of a ringbuffer record. By switching to
struct printk_buffers, ~7kB less memory is allocated when opening
/dev/kmsg.

And since struct printk_buffers will be used now, reduce duplicate
code by calling printk_get_next_message() to handle the record
reading and formatting.

Note that since /dev/kmsg never suppresses records based on
loglevel, printk_get_next_message() is extended with an extra
bool argument to specify if suppression is allowed.

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/20230109100800.1085541-8-john.ogness@linutronix.de
kernel/printk/printk.c