[PATCH v3 0/6] allow ramoops to collect all kmesg_dump events

Kees Cook
2020-05-06T21:15:40Z

Hi!

This is my stab at rearranging a few things based on Pavel's series. Most
things remain the same; I just tweaked how defaults are arranged and
detected and expanded the wording in a few places. Pavel, how does this
v3 look to you?

Pavel's original cover letter:

pstore /mnt/console-ramoops-0 outputs only messages below the console
loglevel, and our console loglevel is set to 3 due to slowness of
serial console. Which means only errors and worse types of messages
are recorded. There is no way to have different log levels for
different consoles.

This patch series adds a new option to ramoops: max_reason that enables
it to collect kmdesg dumps for other reasons beside oops and panics.

How to quickly test:

virtme-run --mods=auto --kdir --mods=auto --kdir . \
-a memmap=1G$8G -a ramoops.mem_address=0x200000000 \
-a ramoops.mem_size=0x100000 -a ramoops.record_size=32768 \
-a ramoops.max_reason=5 -a quiet --qemu-opts -m 8G
..
# reboot -f

After VM is back:

# mount -t pstore pstore /mnt
# head /mnt/dmesg-ramoops-0
Restart#1 Part1
...

Changelog:

v3:
- expanded several comments and commit logs
- move max_reason member earlier in the structure
- refactored DT parsing to allow setting defaults
- changed how deprecated dump_oops fields are detected and parsed
- cleaned up some module param permissions
v2: https://lore.kernel.org/lkml/20200505154510.93506-1-pasha.tatashin@soleen.com
v1: https://lore.kernel.org/lkml/20200502143555.543636-1-pasha.tatashin@soleen.com

Thanks!

-Kees

Kees Cook (2):
pstore/ram: Refactor DT size parsing
pstore/ram: Adjust module param permissions to reflect reality

Pavel Tatashin (4):
printk: honor the max_reason field in kmsg_dumper
pstore/platform: Pass max_reason to kmesg dump
pstore/ram: Introduce max_reason and convert dump_oops
ramoops: Add max_reason optional field to ramoops DT node

Documentation/admin-guide/ramoops.rst | 14 +++-
.../bindings/reserved-memory/ramoops.txt | 13 ++-
drivers/platform/chrome/chromeos_pstore.c | 2 +-
fs/pstore/platform.c | 4 +-
fs/pstore/ram.c | 83 ++++++++++++-------
include/linux/kmsg_dump.h | 1 +
include/linux/pstore.h | 7 ++
include/linux/pstore_ram.h | 2 +-
kernel/printk/printk.c | 15 +++-
9 files changed, 97 insertions(+), 44 deletions(-)

--
2.20.1