dm-crypt: use __bio_add_page to add single page to clone bio
[linux-block.git] / fs / pstore / Kconfig
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
ca01d6dd 2config PSTORE
ee1d2674 3 tristate "Persistent store support"
58eb5b67 4 select CRYPTO if PSTORE_COMPRESS
ca01d6dd
TL
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.
1894a253 16
26fecbf7
VLS
17config 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
cb3bee03 25config PSTORE_DEFLATE_COMPRESS
58eb5b67 26 tristate "DEFLATE (ZLIB) compression"
fe1d4758
KC
27 default y
28 depends on PSTORE
cb3bee03 29 select CRYPTO_DEFLATE
fe1d4758 30 help
cb3bee03
GT
31 This option enables DEFLATE (also known as ZLIB) compression
32 algorithm support.
8cfc8ddc
GT
33
34config PSTORE_LZO_COMPRESS
58eb5b67 35 tristate "LZO compression"
fe1d4758 36 depends on PSTORE
cb3bee03 37 select CRYPTO_LZO
fe1d4758
KC
38 help
39 This option enables LZO compression algorithm support.
8cfc8ddc
GT
40
41config PSTORE_LZ4_COMPRESS
58eb5b67 42 tristate "LZ4 compression"
fe1d4758 43 depends on PSTORE
cb3bee03 44 select CRYPTO_LZ4
fe1d4758
KC
45 help
46 This option enables LZ4 compression algorithm support.
239b7161
GT
47
48config PSTORE_LZ4HC_COMPRESS
58eb5b67 49 tristate "LZ4HC compression"
fe1d4758 50 depends on PSTORE
cb3bee03 51 select CRYPTO_LZ4HC
239b7161
GT
52 help
53 This option enables LZ4HC (high compression) mode algorithm.
54
55config PSTORE_842_COMPRESS
fe1d4758
KC
56 bool "842 compression"
57 depends on PSTORE
cb3bee03 58 select CRYPTO_842
239b7161
GT
59 help
60 This option enables 842 compression algorithm support.
61
1021bcf4
GT
62config 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
fe1d4758
KC
69config PSTORE_COMPRESS
70 def_bool y
71 depends on PSTORE
cb3bee03 72 depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS || \
fe1d4758 73 PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS || \
1021bcf4 74 PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS
fe1d4758
KC
75
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
1021bcf4
GT
84 Currently, pstore has support for 6 compression algorithms:
85 deflate, lzo, lz4, lz4hc, 842 and zstd.
fe1d4758 86
cb3bee03 87 The default compression algorithm is deflate.
fe1d4758 88
cb3bee03 89 config PSTORE_DEFLATE_COMPRESS_DEFAULT
58eb5b67 90 bool "deflate" if PSTORE_DEFLATE_COMPRESS
fe1d4758
KC
91
92 config PSTORE_LZO_COMPRESS_DEFAULT
58eb5b67 93 bool "lzo" if PSTORE_LZO_COMPRESS
fe1d4758
KC
94
95 config PSTORE_LZ4_COMPRESS_DEFAULT
58eb5b67 96 bool "lz4" if PSTORE_LZ4_COMPRESS
fe1d4758
KC
97
98 config PSTORE_LZ4HC_COMPRESS_DEFAULT
58eb5b67 99 bool "lz4hc" if PSTORE_LZ4HC_COMPRESS
fe1d4758
KC
100
101 config PSTORE_842_COMPRESS_DEFAULT
58eb5b67 102 bool "842" if PSTORE_842_COMPRESS
fe1d4758 103
1021bcf4
GT
104 config PSTORE_ZSTD_COMPRESS_DEFAULT
105 bool "zstd" if PSTORE_ZSTD_COMPRESS
106
8cfc8ddc
GT
107endchoice
108
fe1d4758
KC
109config PSTORE_COMPRESS_DEFAULT
110 string
111 depends on PSTORE_COMPRESS
cb3bee03 112 default "deflate" if PSTORE_DEFLATE_COMPRESS_DEFAULT
fe1d4758
KC
113 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
1021bcf4 117 default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT
fe1d4758 118
f29e5956
AV
119config 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
9d5438f4
MS
126config PSTORE_PMSG
127 bool "Log user space messages"
128 depends on PSTORE
2f4fec59 129 select RT_MUTEXES
9d5438f4
MS
130 help
131 When the option is enabled, pstore will export a character
132 interface /dev/pmsg0 to log user space messages. On reboot
133 data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID].
134
135 If unsure, say N.
136
060287b8
AV
137config PSTORE_FTRACE
138 bool "Persistent function tracer"
139 depends on PSTORE
140 depends on FUNCTION_TRACER
65f8c95e 141 depends on DEBUG_FS
060287b8
AV
142 help
143 With this option kernel traces function calls into a persistent
144 ram buffer that can be decoded and dumped after reboot through
145 pstore filesystem. It can be used to determine what function
146 was last called before a reset or panic.
147
148 If unsure, say N.
149
1894a253
AV
150config PSTORE_RAM
151 tristate "Log panic/oops to a RAM buffer"
1894a253 152 depends on PSTORE
cddb8751 153 depends on HAS_IOMEM
cddb8751
AV
154 select REED_SOLOMON
155 select REED_SOLOMON_ENC8
156 select REED_SOLOMON_DEC8
1894a253
AV
157 help
158 This enables panic and oops messages to be logged to a circular
159 buffer in RAM where it can be read back at some later point.
160
161 Note that for historical reasons, the module will be named
162 "ramoops.ko".
163
8c27ceff 164 For more information, see Documentation/admin-guide/ramoops.rst.
d26c3321
WL
165
166config PSTORE_ZONE
167 tristate
168 depends on PSTORE
169 help
170 The common layer for pstore/blk (and pstore/ram in the future)
171 to manage storage in zones.
17639f67
WL
172
173config PSTORE_BLK
174 tristate "Log panic/oops to a block device"
175 depends on PSTORE
176 depends on BLOCK
177 select PSTORE_ZONE
178 default n
179 help
180 This enables panic and oops message to be logged to a block dev
181 where it can be read back at some later point.
182
649304c9
WL
183 For more information, see Documentation/admin-guide/pstore-blk.rst
184
17639f67
WL
185 If unsure, say N.
186
187config PSTORE_BLK_BLKDEV
188 string "block device identifier"
189 depends on PSTORE_BLK
190 default ""
191 help
192 Which block device should be used for pstore/blk.
193
cc9c4d1b 194 It accepts the following variants:
17639f67
WL
195 1) <hex_major><hex_minor> device number in hexadecimal representation,
196 with no leading 0x, for example b302.
cc9c4d1b
WL
197 2) /dev/<disk_name> represents the device name of disk
198 3) /dev/<disk_name><decimal> represents the device name and number
17639f67
WL
199 of partition - device number of disk plus the partition number
200 4) /dev/<disk_name>p<decimal> - same as the above, this form is
201 used when disk name of partitioned disk ends with a digit.
202 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
203 unique id of a partition if the partition table provides it.
204 The UUID may be either an EFI/GPT UUID, or refer to an MSDOS
205 partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-
206 filled hex representation of the 32-bit "NT disk signature", and PP
207 is a zero-filled hex representation of the 1-based partition number.
208 6) PARTUUID=<UUID>/PARTNROFF=<int> to select a partition in relation
209 to a partition with a known unique id.
210 7) <major>:<minor> major and minor number of the device separated by
211 a colon.
212
213 NOTE that, both Kconfig and module parameters can configure
214 pstore/blk, but module parameters have priority over Kconfig.
215
216config PSTORE_BLK_KMSG_SIZE
217 int "Size in Kbytes of kmsg dump log to store"
218 depends on PSTORE_BLK
219 default 64
220 help
221 This just sets size of kmsg dump (oops, panic, etc) log for
222 pstore/blk. The size is in KB and must be a multiple of 4.
223
224 NOTE that, both Kconfig and module parameters can configure
225 pstore/blk, but module parameters have priority over Kconfig.
226
227config PSTORE_BLK_MAX_REASON
228 int "Maximum kmsg dump reason to store"
229 depends on PSTORE_BLK
230 default 2
231 help
232 The maximum reason for kmsg dumps to store. The default is
233 2 (KMSG_DUMP_OOPS), see include/linux/kmsg_dump.h's
234 enum kmsg_dump_reason for more details.
235
236 NOTE that, both Kconfig and module parameters can configure
237 pstore/blk, but module parameters have priority over Kconfig.
0dc06826
WL
238
239config PSTORE_BLK_PMSG_SIZE
240 int "Size in Kbytes of pmsg to store"
241 depends on PSTORE_BLK
242 depends on PSTORE_PMSG
243 default 64
244 help
245 This just sets size of pmsg (pmsg_size) for pstore/blk. The size is
246 in KB and must be a multiple of 4.
247
248 NOTE that, both Kconfig and module parameters can configure
249 pstore/blk, but module parameters have priority over Kconfig.
cc9c4d1b
WL
250
251config PSTORE_BLK_CONSOLE_SIZE
252 int "Size in Kbytes of console log to store"
253 depends on PSTORE_BLK
254 depends on PSTORE_CONSOLE
255 default 64
256 help
257 This just sets size of console log (console_size) to store via
258 pstore/blk. The size is in KB and must be a multiple of 4.
259
260 NOTE that, both Kconfig and module parameters can configure
261 pstore/blk, but module parameters have priority over Kconfig.
34327e9f
WL
262
263config PSTORE_BLK_FTRACE_SIZE
264 int "Size in Kbytes of ftrace log to store"
265 depends on PSTORE_BLK
266 depends on PSTORE_FTRACE
267 default 64
268 help
269 This just sets size of ftrace log (ftrace_size) for pstore/blk. The
270 size is in KB and must be a multiple of 4.
271
272 NOTE that, both Kconfig and module parameters can configure
273 pstore/blk, but module parameters have priority over Kconfig.