Re: Invalid pstore_blk use?

From: Florian Fainelli
Date: Tue Aug 09 2022 - 15:02:56 EST


Hi Kees, WeiXiong,

On 7/14/22 20:49, Florian Fainelli wrote:
Hi Kees, WeiXiong,

I am trying to make use of pstore_blk which is BTW exactly what I had been looking for to store panic/console logs onto an eMMC partition.

Using the 5.10 kernel plus:

7e2e92e9861b Revert "mark pstore-blk as broken"
01c28bc8f389 pstore/blk: Use the normal block device I/O path
2a7507999638 pstore/blk: remove {un,}register_pstore_blk
fef0b337cd25 pstore/zone: cap the maximum device size

or the android13-5.15 (at Merge 5.15.40 into android13-5.15) kernel with no changes and using:

mount -t pstore pstore /sys/fs/pstore
modprobe pstore_blk blkdev=/dev/mmcblk1p9 best_effort=yes

upon triggering a crash with:

echo c > /proc/sysrq-trigger

and rebooting and remounting the pstore filesystem and loading pstore_blk, I only have:

# ls /sys/fs/pstore/
console-pstore_blk-0

which contains the entire console log up to, but excluding the crash. The kernel does show that pstore_blk was used for all 3 types of kmsg, pmsg and console:

[   28.649514] pstore_zone: capping size to 128MiB
[   28.712894] pstore_zone: registered pstore_blk as backend for kmsg(Oops) pmsg console
[   28.721145] pstore: Using crash dump compression: deflate
[   28.906253] printk: console [pstore_blk-1] enabled
[   28.911229] pstore: Registered pstore_blk as persistent store backend
[   28.917735] pstore_blk: attached pstore_blk:/dev/mmcblk1p9 (134217728) (no dedicated panic_write!)

there is no automatic reboot upon panic, so I just tend to reboot after 2-3 seconds manually. The kernel is configured with the default CONFIG_PSTORE_* options.

Is the observed behavior a limitation of the best_effort mode? If so, do we have any plans to implementing a non-best effort mode for eMMC devices?

Any feedback on my email? I did try to get kernel panics to be dumped out to a dedicated /dev/mtdblock* partition for which there ought to be support for mtd->panic_write, but it still did not work any better. Is there something obvious that I am missing which prevents kernel panics from being logged?

Thank you!
--
Florian