blob: 8adabde685f132f2375114bef345e27db85a9265 [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Tony Luckca01d6d2010-12-28 14:25:21 -08002config PSTORE
Geliang Tangee1d2672015-10-20 00:39:03 -07003 tristate "Persistent store support"
Arnd Bergmann58eb5b672018-03-15 16:34:08 +01004 select CRYPTO if PSTORE_COMPRESS
Tony Luckca01d6d2010-12-28 14:25:21 -08005 default n
6 help
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,
15 say N.
Anton Vorontsov1894a252012-05-16 05:43:08 -070016
Vasile-Laurentiu Stanimir26fecbf2020-11-04 15:05:32 +020017config PSTORE_DEFAULT_KMSG_BYTES
18 int "Default kernel log storage space" if EXPERT
19 depends on PSTORE
20 default "10240"
21 help
22 Defines default size of pstore kernel log storage.
23 Can be enlarged if needed, not recommended to shrink it.
24
Geliang Tangcb3bee02018-03-09 18:51:07 +080025config PSTORE_DEFLATE_COMPRESS
Arnd Bergmann58eb5b672018-03-15 16:34:08 +010026 tristate "DEFLATE (ZLIB) compression"
Kees Cookfe1d4752018-03-06 15:57:38 -080027 default y
28 depends on PSTORE
Geliang Tangcb3bee02018-03-09 18:51:07 +080029 select CRYPTO_DEFLATE
Kees Cookfe1d4752018-03-06 15:57:38 -080030 help
Geliang Tangcb3bee02018-03-09 18:51:07 +080031 This option enables DEFLATE (also known as ZLIB) compression
32 algorithm support.
Geliang Tang8cfc8dd2016-02-18 22:04:22 +080033
34config PSTORE_LZO_COMPRESS
Arnd Bergmann58eb5b672018-03-15 16:34:08 +010035 tristate "LZO compression"
Kees Cookfe1d4752018-03-06 15:57:38 -080036 depends on PSTORE
Geliang Tangcb3bee02018-03-09 18:51:07 +080037 select CRYPTO_LZO
Kees Cookfe1d4752018-03-06 15:57:38 -080038 help
39 This option enables LZO compression algorithm support.
Geliang Tang8cfc8dd2016-02-18 22:04:22 +080040
41config PSTORE_LZ4_COMPRESS
Arnd Bergmann58eb5b672018-03-15 16:34:08 +010042 tristate "LZ4 compression"
Kees Cookfe1d4752018-03-06 15:57:38 -080043 depends on PSTORE
Geliang Tangcb3bee02018-03-09 18:51:07 +080044 select CRYPTO_LZ4
Kees Cookfe1d4752018-03-06 15:57:38 -080045 help
46 This option enables LZ4 compression algorithm support.
Geliang Tang239b7162018-02-13 14:40:39 +080047
48config PSTORE_LZ4HC_COMPRESS
Arnd Bergmann58eb5b672018-03-15 16:34:08 +010049 tristate "LZ4HC compression"
Kees Cookfe1d4752018-03-06 15:57:38 -080050 depends on PSTORE
Geliang Tangcb3bee02018-03-09 18:51:07 +080051 select CRYPTO_LZ4HC
Geliang Tang239b7162018-02-13 14:40:39 +080052 help
53 This option enables LZ4HC (high compression) mode algorithm.
54
55config PSTORE_842_COMPRESS
Kees Cookfe1d4752018-03-06 15:57:38 -080056 bool "842 compression"
57 depends on PSTORE
Geliang Tangcb3bee02018-03-09 18:51:07 +080058 select CRYPTO_842
Geliang Tang239b7162018-02-13 14:40:39 +080059 help
60 This option enables 842 compression algorithm support.
61
Geliang Tang1021bcf2018-08-01 19:23:37 +080062config PSTORE_ZSTD_COMPRESS
63 bool "zstd compression"
64 depends on PSTORE
65 select CRYPTO_ZSTD
66 help
67 This option enables zstd compression algorithm support.
68
Kees Cookfe1d4752018-03-06 15:57:38 -080069config PSTORE_COMPRESS
70 def_bool y
71 depends on PSTORE
Geliang Tangcb3bee02018-03-09 18:51:07 +080072 depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS || \
Kees Cookfe1d4752018-03-06 15:57:38 -080073 PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS || \
Geliang Tang1021bcf2018-08-01 19:23:37 +080074 PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS
Kees Cookfe1d4752018-03-06 15:57:38 -080075
76choice
77 prompt "Default pstore compression algorithm"
78 depends on PSTORE_COMPRESS
79 help
80 This option chooses the default active compression algorithm.
81 This change be changed at boot with "pstore.compress=..." on
82 the kernel command line.
83
Geliang Tang1021bcf2018-08-01 19:23:37 +080084 Currently, pstore has support for 6 compression algorithms:
85 deflate, lzo, lz4, lz4hc, 842 and zstd.
Kees Cookfe1d4752018-03-06 15:57:38 -080086
Geliang Tangcb3bee02018-03-09 18:51:07 +080087 The default compression algorithm is deflate.
Kees Cookfe1d4752018-03-06 15:57:38 -080088
Geliang Tangcb3bee02018-03-09 18:51:07 +080089 config PSTORE_DEFLATE_COMPRESS_DEFAULT
Arnd Bergmann58eb5b672018-03-15 16:34:08 +010090 bool "deflate" if PSTORE_DEFLATE_COMPRESS
Kees Cookfe1d4752018-03-06 15:57:38 -080091
92 config PSTORE_LZO_COMPRESS_DEFAULT
Arnd Bergmann58eb5b672018-03-15 16:34:08 +010093 bool "lzo" if PSTORE_LZO_COMPRESS
Kees Cookfe1d4752018-03-06 15:57:38 -080094
95 config PSTORE_LZ4_COMPRESS_DEFAULT
Arnd Bergmann58eb5b672018-03-15 16:34:08 +010096 bool "lz4" if PSTORE_LZ4_COMPRESS
Kees Cookfe1d4752018-03-06 15:57:38 -080097
98 config PSTORE_LZ4HC_COMPRESS_DEFAULT
Arnd Bergmann58eb5b672018-03-15 16:34:08 +010099 bool "lz4hc" if PSTORE_LZ4HC_COMPRESS
Kees Cookfe1d4752018-03-06 15:57:38 -0800100
101 config PSTORE_842_COMPRESS_DEFAULT
Arnd Bergmann58eb5b672018-03-15 16:34:08 +0100102 bool "842" if PSTORE_842_COMPRESS
Kees Cookfe1d4752018-03-06 15:57:38 -0800103
Geliang Tang1021bcf2018-08-01 19:23:37 +0800104 config PSTORE_ZSTD_COMPRESS_DEFAULT
105 bool "zstd" if PSTORE_ZSTD_COMPRESS
106
Geliang Tang8cfc8dd2016-02-18 22:04:22 +0800107endchoice
108
Kees Cookfe1d4752018-03-06 15:57:38 -0800109config PSTORE_COMPRESS_DEFAULT
110 string
111 depends on PSTORE_COMPRESS
Geliang Tangcb3bee02018-03-09 18:51:07 +0800112 default "deflate" if PSTORE_DEFLATE_COMPRESS_DEFAULT
Kees Cookfe1d4752018-03-06 15:57:38 -0800113 default "lzo" if PSTORE_LZO_COMPRESS_DEFAULT
114 default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT
115 default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT
116 default "842" if PSTORE_842_COMPRESS_DEFAULT
Geliang Tang1021bcf2018-08-01 19:23:37 +0800117 default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT
Kees Cookfe1d4752018-03-06 15:57:38 -0800118
Anton Vorontsovf29e5952012-05-26 06:20:19 -0700119config PSTORE_CONSOLE
120 bool "Log kernel console messages"
121 depends on PSTORE
122 help
123 When the option is enabled, pstore will log all kernel
124 messages, even if no oops or panic happened.
125
Mark Salyzyn9d5438f2015-01-16 16:01:10 -0800126config PSTORE_PMSG
127 bool "Log user space messages"
128 depends on PSTORE
129 help
130 When the option is enabled, pstore will export a character
131 interface /dev/pmsg0 to log user space messages. On reboot
132 data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID].
133
134 If unsure, say N.
135
Anton Vorontsov060287b2012-07-09 17:10:41 -0700136config PSTORE_FTRACE
137 bool "Persistent function tracer"
138 depends on PSTORE
139 depends on FUNCTION_TRACER
Anton Vorontsov65f8c952012-07-17 14:26:15 -0700140 depends on DEBUG_FS
Anton Vorontsov060287b2012-07-09 17:10:41 -0700141 help
142 With this option kernel traces function calls into a persistent
143 ram buffer that can be decoded and dumped after reboot through
144 pstore filesystem. It can be used to determine what function
145 was last called before a reset or panic.
146
147 If unsure, say N.
148
Anton Vorontsov1894a252012-05-16 05:43:08 -0700149config PSTORE_RAM
150 tristate "Log panic/oops to a RAM buffer"
Anton Vorontsov1894a252012-05-16 05:43:08 -0700151 depends on PSTORE
Anton Vorontsovcddb8752012-05-17 00:15:08 -0700152 depends on HAS_IOMEM
Anton Vorontsovcddb8752012-05-17 00:15:08 -0700153 select REED_SOLOMON
154 select REED_SOLOMON_ENC8
155 select REED_SOLOMON_DEC8
Anton Vorontsov1894a252012-05-16 05:43:08 -0700156 help
157 This enables panic and oops messages to be logged to a circular
158 buffer in RAM where it can be read back at some later point.
159
160 Note that for historical reasons, the module will be named
161 "ramoops.ko".
162
Mauro Carvalho Chehab8c27ceff32016-10-18 10:12:27 -0200163 For more information, see Documentation/admin-guide/ramoops.rst.
WeiXiong Liaod26c3322020-03-25 16:54:56 +0800164
165config PSTORE_ZONE
166 tristate
167 depends on PSTORE
168 help
169 The common layer for pstore/blk (and pstore/ram in the future)
170 to manage storage in zones.
WeiXiong Liao17639f62020-03-25 16:54:57 +0800171
172config PSTORE_BLK
173 tristate "Log panic/oops to a block device"
174 depends on PSTORE
175 depends on BLOCK
176 select PSTORE_ZONE
177 default n
178 help
179 This enables panic and oops message to be logged to a block dev
180 where it can be read back at some later point.
181
WeiXiong Liao649304c2020-03-25 16:55:02 +0800182 For more information, see Documentation/admin-guide/pstore-blk.rst
183
WeiXiong Liao17639f62020-03-25 16:54:57 +0800184 If unsure, say N.
185
186config PSTORE_BLK_BLKDEV
187 string "block device identifier"
188 depends on PSTORE_BLK
189 default ""
190 help
191 Which block device should be used for pstore/blk.
192
WeiXiong Liaocc9c4d12020-03-25 16:55:00 +0800193 It accepts the following variants:
WeiXiong Liao17639f62020-03-25 16:54:57 +0800194 1) <hex_major><hex_minor> device number in hexadecimal representation,
195 with no leading 0x, for example b302.
WeiXiong Liaocc9c4d12020-03-25 16:55:00 +0800196 2) /dev/<disk_name> represents the device name of disk
197 3) /dev/<disk_name><decimal> represents the device name and number
WeiXiong Liao17639f62020-03-25 16:54:57 +0800198 of partition - device number of disk plus the partition number
199 4) /dev/<disk_name>p<decimal> - same as the above, this form is
200 used when disk name of partitioned disk ends with a digit.
201 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
202 unique id of a partition if the partition table provides it.
203 The UUID may be either an EFI/GPT UUID, or refer to an MSDOS
204 partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-
205 filled hex representation of the 32-bit "NT disk signature", and PP
206 is a zero-filled hex representation of the 1-based partition number.
207 6) PARTUUID=<UUID>/PARTNROFF=<int> to select a partition in relation
208 to a partition with a known unique id.
209 7) <major>:<minor> major and minor number of the device separated by
210 a colon.
211
212 NOTE that, both Kconfig and module parameters can configure
213 pstore/blk, but module parameters have priority over Kconfig.
214
215config PSTORE_BLK_KMSG_SIZE
216 int "Size in Kbytes of kmsg dump log to store"
217 depends on PSTORE_BLK
218 default 64
219 help
220 This just sets size of kmsg dump (oops, panic, etc) log for
221 pstore/blk. The size is in KB and must be a multiple of 4.
222
223 NOTE that, both Kconfig and module parameters can configure
224 pstore/blk, but module parameters have priority over Kconfig.
225
226config PSTORE_BLK_MAX_REASON
227 int "Maximum kmsg dump reason to store"
228 depends on PSTORE_BLK
229 default 2
230 help
231 The maximum reason for kmsg dumps to store. The default is
232 2 (KMSG_DUMP_OOPS), see include/linux/kmsg_dump.h's
233 enum kmsg_dump_reason for more details.
234
235 NOTE that, both Kconfig and module parameters can configure
236 pstore/blk, but module parameters have priority over Kconfig.
WeiXiong Liao0dc06822020-03-25 16:54:59 +0800237
238config PSTORE_BLK_PMSG_SIZE
239 int "Size in Kbytes of pmsg to store"
240 depends on PSTORE_BLK
241 depends on PSTORE_PMSG
242 default 64
243 help
244 This just sets size of pmsg (pmsg_size) for pstore/blk. The size is
245 in KB and must be a multiple of 4.
246
247 NOTE that, both Kconfig and module parameters can configure
248 pstore/blk, but module parameters have priority over Kconfig.
WeiXiong Liaocc9c4d12020-03-25 16:55:00 +0800249
250config PSTORE_BLK_CONSOLE_SIZE
251 int "Size in Kbytes of console log to store"
252 depends on PSTORE_BLK
253 depends on PSTORE_CONSOLE
254 default 64
255 help
256 This just sets size of console log (console_size) to store via
257 pstore/blk. The size is in KB and must be a multiple of 4.
258
259 NOTE that, both Kconfig and module parameters can configure
260 pstore/blk, but module parameters have priority over Kconfig.
WeiXiong Liao34327e92020-03-25 16:55:01 +0800261
262config PSTORE_BLK_FTRACE_SIZE
263 int "Size in Kbytes of ftrace log to store"
264 depends on PSTORE_BLK
265 depends on PSTORE_FTRACE
266 default 64
267 help
268 This just sets size of ftrace log (ftrace_size) for pstore/blk. The
269 size is in KB and must be a multiple of 4.
270
271 NOTE that, both Kconfig and module parameters can configure
272 pstore/blk, but module parameters have priority over Kconfig.