Re: [RFC PATCH v4 9/9] printk: use a new ringbuffer implementation

Dave Young
2019-08-16T05:54:27Z

On 08/16/19 at 01:46pm, Dave Young wrote:
> John, can you cc kexec list for your later series?
>
> On 08/08/19 at 12:32am, John Ogness wrote:
> > This is a major change because the API (and underlying workings)
> > of the new ringbuffer are completely different than the previous
> > ringbuffer. Since there are several components of the printk
> > infrastructure that use the ringbuffer API (console, /dev/kmsg,
> > syslog, kmsg_dump), there are quite a few changes throughout the
> > printk implementation.
> >
> > This is also a conservative change because it continues to use the
> > logbuf_lock raw spinlock even though the new ringbuffer is lockless.
> >
> > The externally visible changes are:
> >
> > 1. The exported vmcore info has changed:
> >
> > - VMCOREINFO_SYMBOL(log_buf);
> > - VMCOREINFO_SYMBOL(log_buf_len);
> > - VMCOREINFO_SYMBOL(log_first_idx);
> > - VMCOREINFO_SYMBOL(clear_idx);
> > - VMCOREINFO_SYMBOL(log_next_idx);
> > + VMCOREINFO_SYMBOL(printk_rb_static);
> > + VMCOREINFO_SYMBOL(printk_rb_dynamic);
>
> I assumed this needs some userspace work in kexec, how did you test
> them?
>
> makedumpfile should need changes to dump the kernel log.
>
> Also kexec-tools includes a vmcore-dmesg.c to extrace dmesg from
> /proc/vmcore.
>
> >
> > 2. For the CONFIG_PPC_POWERNV powerpc platform, kernel log buffer
> > registration is no longer available because there is no longer
> > a single contigous block of memory to represent all of the
> > ringbuffer.
> >
> > Signed-off-by: John Ogness <john.ogness@linutronix.de>
> > ---
> > arch/powerpc/platforms/powernv/opal.c | 22 +-
> > include/linux/kmsg_dump.h | 6 +-
> > include/linux/printk.h | 12 -
> > kernel/printk/printk.c | 745 ++++++++++++++------------
> > kernel/printk/ringbuffer.h | 24 +
> > 5 files changed, 415 insertions(+), 394 deletions(-)
> >

[snip]

Seems kexec list has 40k limitation for msg body. Simon and David, maybe it is
too small?

Thanks
Dave