Hi Dave,
I created a proof-of-concept patch to work with the new printk
ringbuffer (as it is currently being proposed). I create a separate
source file (printk.c) because of all the helper functions.
The code doesn't do much error checking if symbols were missing,
and it probably doesn't work unless the machine running crash(8)
has the same endian and pointer-size as the crashed machine. But
otherwise, it does work correctly.
The most important part I wanted to have implemented was the new
logic for record traversal and printing. Being one of the authors
for the new printk ringbuffer, implementing this was far easier
for me than for someone unfamiliar with the ringbuffer internals.
It is using the new "prb" symbol. I did not add VMCOREINFO
support.
Note that this is based on the PATCHv2 that I have queued for
posting to LKML, but as of right now have not yet posted.
Basically I am waiting for feedback from Kazuhito regarding my
VMCOREINFO query. (It will not work with previous iterations
of the new ringbuffer because the struct names have changed.)
I don't expect you to take the patch as-is, but I hope it can
provide some positive ground work for moving forward.
John Ogness (1):
crash: printk: add support for lockless ringbuffer
Makefile | 5 +
defs.h | 24 +++++
kernel.c | 8 +-
printk.c | 298 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 334 insertions(+), 1 deletion(-)
create mode 100644 printk.c
--
2.20.1