• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# SPDX-License-Identifier: GPL-2.0-only
2config PSTORE
3	tristate "Persistent store support"
4	select CRYPTO if PSTORE_COMPRESS
5	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.
16
17config PSTORE_DEFLATE_COMPRESS
18	tristate "DEFLATE (ZLIB) compression"
19	default y
20	depends on PSTORE
21	select CRYPTO_DEFLATE
22	help
23	  This option enables DEFLATE (also known as ZLIB) compression
24	  algorithm support.
25
26config PSTORE_LZO_COMPRESS
27	tristate "LZO compression"
28	depends on PSTORE
29	select CRYPTO_LZO
30	help
31	  This option enables LZO compression algorithm support.
32
33config PSTORE_LZ4_COMPRESS
34	tristate "LZ4 compression"
35	depends on PSTORE
36	select CRYPTO_LZ4
37	help
38	  This option enables LZ4 compression algorithm support.
39
40config PSTORE_LZ4HC_COMPRESS
41	tristate "LZ4HC compression"
42	depends on PSTORE
43	select CRYPTO_LZ4HC
44	help
45	  This option enables LZ4HC (high compression) mode algorithm.
46
47config PSTORE_842_COMPRESS
48	bool "842 compression"
49	depends on PSTORE
50	select CRYPTO_842
51	help
52	  This option enables 842 compression algorithm support.
53
54config PSTORE_ZSTD_COMPRESS
55	bool "zstd compression"
56	depends on PSTORE
57	select CRYPTO_ZSTD
58	help
59	  This option enables zstd compression algorithm support.
60
61config PSTORE_COMPRESS
62	def_bool y
63	depends on PSTORE
64	depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS ||	\
65		   PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS ||	\
66		   PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS
67
68choice
69	prompt "Default pstore compression algorithm"
70	depends on PSTORE_COMPRESS
71	help
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.
75
76	  Currently, pstore has support for 6 compression algorithms:
77	  deflate, lzo, lz4, lz4hc, 842 and zstd.
78
79	  The default compression algorithm is deflate.
80
81	config PSTORE_DEFLATE_COMPRESS_DEFAULT
82		bool "deflate" if PSTORE_DEFLATE_COMPRESS
83
84	config PSTORE_LZO_COMPRESS_DEFAULT
85		bool "lzo" if PSTORE_LZO_COMPRESS
86
87	config PSTORE_LZ4_COMPRESS_DEFAULT
88		bool "lz4" if PSTORE_LZ4_COMPRESS
89
90	config PSTORE_LZ4HC_COMPRESS_DEFAULT
91		bool "lz4hc" if PSTORE_LZ4HC_COMPRESS
92
93	config PSTORE_842_COMPRESS_DEFAULT
94		bool "842" if PSTORE_842_COMPRESS
95
96	config PSTORE_ZSTD_COMPRESS_DEFAULT
97		bool "zstd" if PSTORE_ZSTD_COMPRESS
98
99endchoice
100
101config PSTORE_COMPRESS_DEFAULT
102	string
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
110
111config PSTORE_CONSOLE
112	bool "Log kernel console messages"
113	depends on PSTORE
114	help
115	  When the option is enabled, pstore will log all kernel
116	  messages, even if no oops or panic happened.
117
118config PSTORE_PMSG
119	bool "Log user space messages"
120	depends on PSTORE
121	select RT_MUTEXES
122	help
123	  When the option is enabled, pstore will export a character
124	  interface /dev/pmsg0 to log user space messages. On reboot
125	  data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID].
126
127	  If unsure, say N.
128
129config PSTORE_FTRACE
130	bool "Persistent function tracer"
131	depends on PSTORE
132	depends on FUNCTION_TRACER
133	depends on DEBUG_FS
134	help
135	  With this option kernel traces function calls into a persistent
136	  ram buffer that can be decoded and dumped after reboot through
137	  pstore filesystem. It can be used to determine what function
138	  was last called before a reset or panic.
139
140	  If unsure, say N.
141
142config PSTORE_BLACKBOX
143	bool "Store customised fault log"
144	depends on PSTORE
145	depends on BLACKBOX
146	help
147	  Enable storing the customised fault log for BlackBox.
148
149	  With the option enabled, pstore will store the customised kernel
150	  fault log for BlackBox when oops or panic happened.
151
152	  If unsure, say N.
153
154config PSTORE_RAM
155	tristate "Log panic/oops to a RAM buffer"
156	depends on PSTORE
157	depends on HAS_IOMEM
158	select REED_SOLOMON
159	select REED_SOLOMON_ENC8
160	select REED_SOLOMON_DEC8
161	help
162	  This enables panic and oops messages to be logged to a circular
163	  buffer in RAM where it can be read back at some later point.
164
165	  Note that for historical reasons, the module will be named
166	  "ramoops.ko".
167
168	  For more information, see Documentation/admin-guide/ramoops.rst.
169
170config PSTORE_ZONE
171	tristate
172	depends on PSTORE
173	help
174	  The common layer for pstore/blk (and pstore/ram in the future)
175	  to manage storage in zones.
176
177config PSTORE_BLK
178	tristate "Log panic/oops to a block device"
179	depends on PSTORE
180	depends on BLOCK
181	depends on BLACKBOX_USE_PSTORE_BLK_DEBUG || BROKEN
182	select PSTORE_ZONE
183	default n
184	help
185	  This enables panic and oops message to be logged to a block dev
186	  where it can be read back at some later point.
187
188	  For more information, see Documentation/admin-guide/pstore-blk.rst
189
190	  If unsure, say N.
191
192config PSTORE_BLK_BLKDEV
193	string "block device identifier"
194	depends on PSTORE_BLK
195	default ""
196	help
197	  Which block device should be used for pstore/blk.
198
199	  It accepts the following variants:
200	  1) <hex_major><hex_minor> device number in hexadecimal representation,
201	     with no leading 0x, for example b302.
202	  2) /dev/<disk_name> represents the device name of disk
203	  3) /dev/<disk_name><decimal> represents the device name and number
204	     of partition - device number of disk plus the partition number
205	  4) /dev/<disk_name>p<decimal> - same as the above, this form is
206	     used when disk name of partitioned disk ends with a digit.
207	  5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
208	     unique id of a partition if the partition table provides it.
209	     The UUID may be either an EFI/GPT UUID, or refer to an MSDOS
210	     partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-
211	     filled hex representation of the 32-bit "NT disk signature", and PP
212	     is a zero-filled hex representation of the 1-based partition number.
213	  6) PARTUUID=<UUID>/PARTNROFF=<int> to select a partition in relation
214	     to a partition with a known unique id.
215	  7) <major>:<minor> major and minor number of the device separated by
216	     a colon.
217
218	  NOTE that, both Kconfig and module parameters can configure
219	  pstore/blk, but module parameters have priority over Kconfig.
220
221config PSTORE_BLK_KMSG_SIZE
222	int "Size in Kbytes of kmsg dump log to store"
223	depends on PSTORE_BLK
224	default 64
225	help
226	  This just sets size of kmsg dump (oops, panic, etc) log for
227	  pstore/blk. The size is in KB and must be a multiple of 4.
228
229	  NOTE that, both Kconfig and module parameters can configure
230	  pstore/blk, but module parameters have priority over Kconfig.
231
232config PSTORE_BLK_MAX_REASON
233	int "Maximum kmsg dump reason to store"
234	depends on PSTORE_BLK
235	default 2
236	help
237	  The maximum reason for kmsg dumps to store. The default is
238	  2 (KMSG_DUMP_OOPS), see include/linux/kmsg_dump.h's
239	  enum kmsg_dump_reason for more details.
240
241	  NOTE that, both Kconfig and module parameters can configure
242	  pstore/blk, but module parameters have priority over Kconfig.
243
244config PSTORE_BLK_PMSG_SIZE
245	int "Size in Kbytes of pmsg to store"
246	depends on PSTORE_BLK
247	depends on PSTORE_PMSG
248	default 64
249	help
250	  This just sets size of pmsg (pmsg_size) for pstore/blk. The size is
251	  in KB and must be a multiple of 4.
252
253	  NOTE that, both Kconfig and module parameters can configure
254	  pstore/blk, but module parameters have priority over Kconfig.
255
256config PSTORE_BLK_CONSOLE_SIZE
257	int "Size in Kbytes of console log to store"
258	depends on PSTORE_BLK
259	depends on PSTORE_CONSOLE
260	default 64
261	help
262	  This just sets size of console log (console_size) to store via
263	  pstore/blk. The size is in KB and must be a multiple of 4.
264
265	  NOTE that, both Kconfig and module parameters can configure
266	  pstore/blk, but module parameters have priority over Kconfig.
267
268config PSTORE_BLK_FTRACE_SIZE
269	int "Size in Kbytes of ftrace log to store"
270	depends on PSTORE_BLK
271	depends on PSTORE_FTRACE
272	default 64
273	help
274	  This just sets size of ftrace log (ftrace_size) for pstore/blk. The
275	  size is in KB and must be a multiple of 4.
276
277	  NOTE that, both Kconfig and module parameters can configure
278	  pstore/blk, but module parameters have priority over Kconfig.
279
280config PSTORE_BLK_BLACKBOX_SIZE
281	int "Size in Kbytes of fault log for BlackBox to store"
282	depends on PSTORE_BLK
283	depends on PSTORE_BLACKBOX
284	default 64
285	help
286	  This just sets size of fault log (blackbox_size) for pstore/blk.
287	  The size is in KB and must be a multiple of 4.
288
289	  NOTE that, both Kconfig and module parameters can configure
290	  pstore/blk, but module parameters have priority over Kconfig.
291
292config PSTORE_BLACKBOX_STACK_SIZE
293	int "Default stack size for BlackBox" if EXPERT
294	depends on PSTORE
295	depends on PSTORE_BLACKBOX
296	default 1024
297	help
298	  Defines default size of pstore stack size for blackbox.
299	  Can be enlarged if needed. not recommended to shrink it.
300