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_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 25config PSTORE_DEFLATE_COMPRESS 26 tristate "DEFLATE (ZLIB) compression" 27 default y 28 depends on PSTORE 29 select CRYPTO_DEFLATE 30 help 31 This option enables DEFLATE (also known as ZLIB) compression 32 algorithm support. 33 34config PSTORE_LZO_COMPRESS 35 tristate "LZO compression" 36 depends on PSTORE 37 select CRYPTO_LZO 38 help 39 This option enables LZO compression algorithm support. 40 41config PSTORE_LZ4_COMPRESS 42 tristate "LZ4 compression" 43 depends on PSTORE 44 select CRYPTO_LZ4 45 help 46 This option enables LZ4 compression algorithm support. 47 48config PSTORE_LZ4HC_COMPRESS 49 tristate "LZ4HC compression" 50 depends on PSTORE 51 select CRYPTO_LZ4HC 52 help 53 This option enables LZ4HC (high compression) mode algorithm. 54 55config PSTORE_842_COMPRESS 56 bool "842 compression" 57 depends on PSTORE 58 select CRYPTO_842 59 help 60 This option enables 842 compression algorithm support. 61 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 69config PSTORE_COMPRESS 70 def_bool y 71 depends on PSTORE 72 depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS || \ 73 PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS || \ 74 PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS 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 84 Currently, pstore has support for 6 compression algorithms: 85 deflate, lzo, lz4, lz4hc, 842 and zstd. 86 87 The default compression algorithm is deflate. 88 89 config PSTORE_DEFLATE_COMPRESS_DEFAULT 90 bool "deflate" if PSTORE_DEFLATE_COMPRESS 91 92 config PSTORE_LZO_COMPRESS_DEFAULT 93 bool "lzo" if PSTORE_LZO_COMPRESS 94 95 config PSTORE_LZ4_COMPRESS_DEFAULT 96 bool "lz4" if PSTORE_LZ4_COMPRESS 97 98 config PSTORE_LZ4HC_COMPRESS_DEFAULT 99 bool "lz4hc" if PSTORE_LZ4HC_COMPRESS 100 101 config PSTORE_842_COMPRESS_DEFAULT 102 bool "842" if PSTORE_842_COMPRESS 103 104 config PSTORE_ZSTD_COMPRESS_DEFAULT 105 bool "zstd" if PSTORE_ZSTD_COMPRESS 106 107endchoice 108 109config PSTORE_COMPRESS_DEFAULT 110 string 111 depends on PSTORE_COMPRESS 112 default "deflate" if PSTORE_DEFLATE_COMPRESS_DEFAULT 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 117 default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT 118 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 126config PSTORE_PMSG 127 bool "Log user space messages" 128 depends on PSTORE 129 select RT_MUTEXES 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 137config PSTORE_FTRACE 138 bool "Persistent function tracer" 139 depends on PSTORE 140 depends on FUNCTION_TRACER 141 depends on DEBUG_FS 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 150config PSTORE_RAM 151 tristate "Log panic/oops to a RAM buffer" 152 depends on PSTORE 153 depends on HAS_IOMEM 154 select REED_SOLOMON 155 select REED_SOLOMON_ENC8 156 select REED_SOLOMON_DEC8 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 164 For more information, see Documentation/admin-guide/ramoops.rst. 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. 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 183 For more information, see Documentation/admin-guide/pstore-blk.rst 184 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 194 It accepts the following variants: 195 1) <hex_major><hex_minor> device number in hexadecimal representation, 196 with no leading 0x, for example b302. 197 2) /dev/<disk_name> represents the device name of disk 198 3) /dev/<disk_name><decimal> represents the device name and number 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. 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. 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. 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. 274