^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) What: /sys/fs/pstore/... (or /dev/pstore/...)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) Date: March 2011
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) KernelVersion: 2.6.39
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Contact: tony.luck@intel.com
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) Description: Generic interface to platform dependent persistent storage.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) Platforms that provide a mechanism to preserve some data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) across system reboots can register with this driver to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) provide a generic interface to show records captured in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) the dying moments. In the case of a panic the last part
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) of the console log is captured, but other interesting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) data can also be saved::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) # mount -t pstore -o kmsg_bytes=8000 - /sys/fs/pstore
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) $ ls -l /sys/fs/pstore/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) total 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) -r--r--r-- 1 root root 7896 Nov 30 15:38 dmesg-erst-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) Different users of this interface will result in different
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) filename prefixes. Currently two are defined:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) - "dmesg" - saved console log
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) - "mce" - architecture dependent data from fatal h/w error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) Once the information in a file has been read, removing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) the file will signal to the underlying persistent storage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) device that it can reclaim the space for later re-use::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) $ rm /sys/fs/pstore/dmesg-erst-1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) The expectation is that all files in /sys/fs/pstore/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) will be saved elsewhere and erased from persistent store
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) soon after boot to free up space ready for the next
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) catastrophe.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) The 'kmsg_bytes' mount option changes the target amount of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) data saved on each oops/panic. Pstore saves (possibly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) multiple) files based on the record size of the underlying
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) persistent storage until at least this amount is reached.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) Default is 10 Kbytes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) Pstore only supports one backend at a time. If multiple
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) backends are available, the preferred backend may be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) set by passing the pstore.backend= argument to the kernel at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) boot time.