OSDN Git Service

mtd: Support kmsg dumper based on pstore/blk
authorWeiXiong Liao <liaoweixiong@allwinnertech.com>
Wed, 25 Mar 2020 08:55:06 +0000 (16:55 +0800)
committerKees Cook <keescook@chromium.org>
Mon, 1 Jun 2020 02:49:01 +0000 (19:49 -0700)
commit78c08247b9d3e03192f8b359aa079024e805a948
treeebc4c79461299d67d159c672c86b52e6b6c8acc7
parentf8feafeaeedbf0a324c373c5fa29a2098a69c458
mtd: Support kmsg dumper based on pstore/blk

This introduces mtdpstore, which is similar to mtdoops but more
powerful. It uses pstore/blk, and aims to store panic and oops logs to
a flash partition, where pstore can later read back and present as files
in the mounted pstore filesystem.

To make mtdpstore work, the "blkdev" of pstore/blk should be set
as MTD device name or MTD device number. For more details, see
Documentation/admin-guide/pstore-blk.rst

This solves a number of issues:
- Work duplication: both of pstore and mtdoops do the same job storing
  panic/oops log. They have very similar logic, registering to kmsg
  dumper and storing logs to several chunks one by one.
- Layer violations: drivers should provides methods instead of polices.
  MTD should provide read/write/erase operations, and allow a higher
  level drivers to provide the chunk management, kmsg dump
  configuration, etc.
- Missing features: pstore provides many additional features, including
  presenting the logs as files, logging dump time and count, and
  supporting other frontends like pmsg, console, etc.

Signed-off-by: WeiXiong Liao <liaoweixiong@allwinnertech.com>
Link: https://lore.kernel.org/lkml/20200511233229.27745-11-keescook@chromium.org/
Link: https://lore.kernel.org/r/1589266715-4168-1-git-send-email-liaoweixiong@allwinnertech.com
Signed-off-by: Kees Cook <keescook@chromium.org>
Documentation/admin-guide/pstore-blk.rst
drivers/mtd/Kconfig
drivers/mtd/Makefile
drivers/mtd/mtdpstore.c [new file with mode: 0644]