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: v1: https://lore.kernel.org/lkml/20200502143555.543636-1-pasha.tatashin@xxxxxxxxxx v2: Addressed comments from Kees Cook, Steven Rostedt, and Sergey Senozhatsky - Replaced dump_all with max_reason - removed duplicated enum value - moved always_kmsg_dump logic back to kmsg_dump(). Pavel Tatashin (5): printk: honor the max_reason field in kmsg_dumper pstore/platform: pass max_reason to kmesg dump pstore/ram: in ramoops_platform_data convert dump_oops to max_reason pstore/ram: allow to dump kmesg during regular reboot ramoops: add max_reason optional field to ramoops DT node Documentation/admin-guide/ramoops.rst | 11 +++--- .../bindings/reserved-memory/ramoops.txt | 10 ++++-- drivers/platform/chrome/chromeos_pstore.c | 2 +- fs/pstore/platform.c | 4 ++- fs/pstore/ram.c | 35 +++++++++---------- include/linux/kmsg_dump.h | 1 + include/linux/pstore.h | 3 ++ include/linux/pstore_ram.h | 2 +- kernel/printk/printk.c | 15 +++++--- 9 files changed, 51 insertions(+), 32 deletions(-) -- 2.25.1