1 # SPDX-License-Identifier: GPL-2.0-only
3 tristate "Persistent store support"
4 select CRYPTO if PSTORE_COMPRESS
7 This option enables generic access to platform level
8 persistent storage via "pstore" filesystem that can
9 be mounted as /dev/pstore. Only useful if you have
10 a platform level driver that registers with pstore to
11 provide the data, so you probably should just go say "Y"
12 (or "M") to a platform specific persistent store driver
13 (e.g. ACPI_APEI on X86) which will select this for you.
14 If you don't have a platform persistent store driver,
17 config PSTORE_DEFLATE_COMPRESS
18 tristate "DEFLATE (ZLIB) compression"
23 This option enables DEFLATE (also known as ZLIB) compression
26 config PSTORE_LZO_COMPRESS
27 tristate "LZO compression"
31 This option enables LZO compression algorithm support.
33 config PSTORE_LZ4_COMPRESS
34 tristate "LZ4 compression"
38 This option enables LZ4 compression algorithm support.
40 config PSTORE_LZ4HC_COMPRESS
41 tristate "LZ4HC compression"
45 This option enables LZ4HC (high compression) mode algorithm.
47 config PSTORE_842_COMPRESS
48 bool "842 compression"
52 This option enables 842 compression algorithm support.
54 config PSTORE_ZSTD_COMPRESS
55 bool "zstd compression"
59 This option enables zstd compression algorithm support.
61 config PSTORE_COMPRESS
64 depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS || \
65 PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS || \
66 PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS
69 prompt "Default pstore compression algorithm"
70 depends on PSTORE_COMPRESS
72 This option chooses the default active compression algorithm.
73 This change be changed at boot with "pstore.compress=..." on
74 the kernel command line.
76 Currently, pstore has support for 6 compression algorithms:
77 deflate, lzo, lz4, lz4hc, 842 and zstd.
79 The default compression algorithm is deflate.
81 config PSTORE_DEFLATE_COMPRESS_DEFAULT
82 bool "deflate" if PSTORE_DEFLATE_COMPRESS
84 config PSTORE_LZO_COMPRESS_DEFAULT
85 bool "lzo" if PSTORE_LZO_COMPRESS
87 config PSTORE_LZ4_COMPRESS_DEFAULT
88 bool "lz4" if PSTORE_LZ4_COMPRESS
90 config PSTORE_LZ4HC_COMPRESS_DEFAULT
91 bool "lz4hc" if PSTORE_LZ4HC_COMPRESS
93 config PSTORE_842_COMPRESS_DEFAULT
94 bool "842" if PSTORE_842_COMPRESS
96 config PSTORE_ZSTD_COMPRESS_DEFAULT
97 bool "zstd" if PSTORE_ZSTD_COMPRESS
101 config PSTORE_COMPRESS_DEFAULT
103 depends on PSTORE_COMPRESS
104 default "deflate" if PSTORE_DEFLATE_COMPRESS_DEFAULT
105 default "lzo" if PSTORE_LZO_COMPRESS_DEFAULT
106 default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT
107 default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT
108 default "842" if PSTORE_842_COMPRESS_DEFAULT
109 default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT
111 config PSTORE_CONSOLE
112 bool "Log kernel console messages"
115 When the option is enabled, pstore will log all kernel
116 messages, even if no oops or panic happened.
119 bool "Log user space messages"
122 When the option is enabled, pstore will export a character
123 interface /dev/pmsg0 to log user space messages. On reboot
124 data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID].
129 bool "Persistent function tracer"
131 depends on FUNCTION_TRACER
134 With this option kernel traces function calls into a persistent
135 ram buffer that can be decoded and dumped after reboot through
136 pstore filesystem. It can be used to determine what function
137 was last called before a reset or panic.
142 tristate "Log panic/oops to a RAM buffer"
146 select REED_SOLOMON_ENC8
147 select REED_SOLOMON_DEC8
149 This enables panic and oops messages to be logged to a circular
150 buffer in RAM where it can be read back at some later point.
152 Note that for historical reasons, the module will be named
155 For more information, see Documentation/admin-guide/ramoops.rst.
161 The common layer for pstore/blk (and pstore/ram in the future)
162 to manage storage in zones.
165 tristate "Log panic/oops to a block device"
172 This enables panic and oops message to be logged to a block dev
173 where it can be read back at some later point.
175 For more information, see Documentation/admin-guide/pstore-blk.rst
179 config PSTORE_BLK_BLKDEV
180 string "block device identifier"
181 depends on PSTORE_BLK
184 Which block device should be used for pstore/blk.
186 It accepts the following variants:
187 1) <hex_major><hex_minor> device number in hexadecimal representation,
188 with no leading 0x, for example b302.
189 2) /dev/<disk_name> represents the device name of disk
190 3) /dev/<disk_name><decimal> represents the device name and number
191 of partition - device number of disk plus the partition number
192 4) /dev/<disk_name>p<decimal> - same as the above, this form is
193 used when disk name of partitioned disk ends with a digit.
194 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
195 unique id of a partition if the partition table provides it.
196 The UUID may be either an EFI/GPT UUID, or refer to an MSDOS
197 partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-
198 filled hex representation of the 32-bit "NT disk signature", and PP
199 is a zero-filled hex representation of the 1-based partition number.
200 6) PARTUUID=<UUID>/PARTNROFF=<int> to select a partition in relation
201 to a partition with a known unique id.
202 7) <major>:<minor> major and minor number of the device separated by
205 NOTE that, both Kconfig and module parameters can configure
206 pstore/blk, but module parameters have priority over Kconfig.
208 config PSTORE_BLK_KMSG_SIZE
209 int "Size in Kbytes of kmsg dump log to store"
210 depends on PSTORE_BLK
213 This just sets size of kmsg dump (oops, panic, etc) log for
214 pstore/blk. The size is in KB and must be a multiple of 4.
216 NOTE that, both Kconfig and module parameters can configure
217 pstore/blk, but module parameters have priority over Kconfig.
219 config PSTORE_BLK_MAX_REASON
220 int "Maximum kmsg dump reason to store"
221 depends on PSTORE_BLK
224 The maximum reason for kmsg dumps to store. The default is
225 2 (KMSG_DUMP_OOPS), see include/linux/kmsg_dump.h's
226 enum kmsg_dump_reason for more details.
228 NOTE that, both Kconfig and module parameters can configure
229 pstore/blk, but module parameters have priority over Kconfig.
231 config PSTORE_BLK_PMSG_SIZE
232 int "Size in Kbytes of pmsg to store"
233 depends on PSTORE_BLK
234 depends on PSTORE_PMSG
237 This just sets size of pmsg (pmsg_size) for pstore/blk. The size is
238 in KB and must be a multiple of 4.
240 NOTE that, both Kconfig and module parameters can configure
241 pstore/blk, but module parameters have priority over Kconfig.
243 config PSTORE_BLK_CONSOLE_SIZE
244 int "Size in Kbytes of console log to store"
245 depends on PSTORE_BLK
246 depends on PSTORE_CONSOLE
249 This just sets size of console log (console_size) to store via
250 pstore/blk. The size is in KB and must be a multiple of 4.
252 NOTE that, both Kconfig and module parameters can configure
253 pstore/blk, but module parameters have priority over Kconfig.
255 config PSTORE_BLK_FTRACE_SIZE
256 int "Size in Kbytes of ftrace log to store"
257 depends on PSTORE_BLK
258 depends on PSTORE_FTRACE
261 This just sets size of ftrace log (ftrace_size) for pstore/blk. The
262 size is in KB and must be a multiple of 4.
264 NOTE that, both Kconfig and module parameters can configure
265 pstore/blk, but module parameters have priority over Kconfig.