Hello, Here is the second series to rework the printk subsystem. This series removes LOG_CONT handling from printk() callers, storing all LOG_CONT parts individually in the ringbuffer. With this series, LOG_CONT handling is moved to the ringbuffer readers that provide the record contents to users (console printing, syslog, /dev/kmsg). This change is necessary in order to support the upcoming move to a fully lockless printk() implementation. This series is in line with the agreements [0] made at the meeting during LPC2019 in Lisbon, with 1 exception: For the /dev/kmsg interface, empty line placeholder records are reported for the LOG_CONT parts. Using placeholders avoids tools such as systemd-journald from erroneously reporting missed messages. However, it also means that empty placeholder records are visible in systemd-journald logs and displayed in tools such as dmesg. The effect can be easily observed with the sysrq help: $ echo h | sudo tee /proc/sysrq-trigger $ sudo dmesg | tail -n 30 $ sudo journalctl -k -n 30 Providing the placeholder entries allows a userspace tool to identify if records were actually lost. IMHO this an important feature. Its side effect can be addressed by userspace tools if they change to silently consume empty records. For dump tools that process the ringbuffer directly (such as crash, makedumpfile, kexec-tools), they will need to implement LOG_CONT handling if they want to present clean continuous line messages. Finally, by moving LOG_CONT handling from writers to readers, some incorrect pr_cont() usage is revealed. Patch 4 of this series addresses one such example. This series is based on the printk git tree [1] printk-rework branch. [0] https://lkml.kernel.org/r/87k1acz5rx.fsf@xxxxxxxxxxxxx [1] https://git.kernel.org/pub/scm/linux/kernel/git/printk/linux.git (printk-rework branch) John Ogness (4): printk: ringbuffer: support dataless records printk: store instead of processing cont parts printk: process cont records during reading ipconfig: cleanup printk usage kernel/printk/printk.c | 569 ++++++++++++++++++++---------- kernel/printk/printk_ringbuffer.c | 58 ++- kernel/printk/printk_ringbuffer.h | 15 +- net/ipv4/ipconfig.c | 25 +- 4 files changed, 434 insertions(+), 233 deletions(-) -- 2.20.1 _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec