1 # SPDX-License-Identifier: GPL-2.0-only 1 # SPDX-License-Identifier: GPL-2.0-only 2 config PSTORE 2 config PSTORE 3 tristate "Persistent store support" 3 tristate "Persistent store support" >> 4 select CRYPTO if PSTORE_COMPRESS 4 default n 5 default n 5 help 6 help 6 This option enables generic access 7 This option enables generic access to platform level 7 persistent storage via "pstore" fil 8 persistent storage via "pstore" filesystem that can 8 be mounted as /dev/pstore. Only us 9 be mounted as /dev/pstore. Only useful if you have 9 a platform level driver that regist 10 a platform level driver that registers with pstore to 10 provide the data, so you probably s 11 provide the data, so you probably should just go say "Y" 11 (or "M") to a platform specific per 12 (or "M") to a platform specific persistent store driver 12 (e.g. ACPI_APEI on X86) which will 13 (e.g. ACPI_APEI on X86) which will select this for you. 13 If you don't have a platform persis 14 If you don't have a platform persistent store driver, 14 say N. 15 say N. 15 16 16 config PSTORE_DEFAULT_KMSG_BYTES 17 config PSTORE_DEFAULT_KMSG_BYTES 17 int "Default kernel log storage space" 18 int "Default kernel log storage space" if EXPERT 18 depends on PSTORE 19 depends on PSTORE 19 default "10240" 20 default "10240" 20 help 21 help 21 Defines default size of pstore kerne 22 Defines default size of pstore kernel log storage. 22 Can be enlarged if needed, not recom 23 Can be enlarged if needed, not recommended to shrink it. 23 24 >> 25 config 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 >> 34 config 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 >> 41 config 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 >> 48 config 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 >> 55 config 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 >> 62 config 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 24 config PSTORE_COMPRESS 69 config PSTORE_COMPRESS 25 bool "Pstore compression (deflate)" !! 70 def_bool y 26 depends on PSTORE 71 depends on PSTORE 27 select ZLIB_INFLATE !! 72 depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS || \ 28 select ZLIB_DEFLATE !! 73 PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS || \ 29 default y !! 74 PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS >> 75 >> 76 choice >> 77 prompt "Default pstore compression algorithm" >> 78 depends on PSTORE_COMPRESS 30 help 79 help 31 Whether pstore records should be com !! 80 This option chooses the default active compression algorithm. 32 the backing store. This is implement !! 81 This change be changed at boot with "pstore.compress=..." on 33 algorithm, using the library impleme !! 82 the kernel command line. 34 blown crypto API. This reduces the r !! 83 35 problems while pstore is recording p !! 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 >> 107 endchoice >> 108 >> 109 config 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 36 118 37 config PSTORE_CONSOLE 119 config PSTORE_CONSOLE 38 bool "Log kernel console messages" 120 bool "Log kernel console messages" 39 depends on PSTORE 121 depends on PSTORE 40 help 122 help 41 When the option is enabled, pstore w 123 When the option is enabled, pstore will log all kernel 42 messages, even if no oops or panic h 124 messages, even if no oops or panic happened. 43 125 44 config PSTORE_PMSG 126 config PSTORE_PMSG 45 bool "Log user space messages" 127 bool "Log user space messages" 46 depends on PSTORE 128 depends on PSTORE 47 select RT_MUTEXES << 48 help 129 help 49 When the option is enabled, pstore w 130 When the option is enabled, pstore will export a character 50 interface /dev/pmsg0 to log user spa 131 interface /dev/pmsg0 to log user space messages. On reboot 51 data can be retrieved from /sys/fs/p 132 data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID]. 52 133 53 If unsure, say N. 134 If unsure, say N. 54 135 55 config PSTORE_FTRACE 136 config PSTORE_FTRACE 56 bool "Persistent function tracer" 137 bool "Persistent function tracer" 57 depends on PSTORE 138 depends on PSTORE 58 depends on FUNCTION_TRACER 139 depends on FUNCTION_TRACER 59 depends on DEBUG_FS 140 depends on DEBUG_FS 60 help 141 help 61 With this option kernel traces funct 142 With this option kernel traces function calls into a persistent 62 ram buffer that can be decoded and d 143 ram buffer that can be decoded and dumped after reboot through 63 pstore filesystem. It can be used to 144 pstore filesystem. It can be used to determine what function 64 was last called before a reset or pa 145 was last called before a reset or panic. 65 146 66 If unsure, say N. 147 If unsure, say N. 67 148 68 config PSTORE_RAM 149 config PSTORE_RAM 69 tristate "Log panic/oops to a RAM buff 150 tristate "Log panic/oops to a RAM buffer" 70 depends on PSTORE 151 depends on PSTORE 71 depends on HAS_IOMEM 152 depends on HAS_IOMEM 72 select REED_SOLOMON 153 select REED_SOLOMON 73 select REED_SOLOMON_ENC8 154 select REED_SOLOMON_ENC8 74 select REED_SOLOMON_DEC8 155 select REED_SOLOMON_DEC8 75 help 156 help 76 This enables panic and oops messages 157 This enables panic and oops messages to be logged to a circular 77 buffer in RAM where it can be read b 158 buffer in RAM where it can be read back at some later point. 78 159 79 Note that for historical reasons, th 160 Note that for historical reasons, the module will be named 80 "ramoops.ko". 161 "ramoops.ko". 81 162 82 For more information, see Documentat 163 For more information, see Documentation/admin-guide/ramoops.rst. 83 164 84 config PSTORE_ZONE 165 config PSTORE_ZONE 85 tristate 166 tristate 86 depends on PSTORE 167 depends on PSTORE 87 help 168 help 88 The common layer for pstore/blk (and 169 The common layer for pstore/blk (and pstore/ram in the future) 89 to manage storage in zones. 170 to manage storage in zones. 90 171 91 config PSTORE_BLK 172 config PSTORE_BLK 92 tristate "Log panic/oops to a block de 173 tristate "Log panic/oops to a block device" 93 depends on PSTORE 174 depends on PSTORE 94 depends on BLOCK 175 depends on BLOCK >> 176 depends on BROKEN 95 select PSTORE_ZONE 177 select PSTORE_ZONE 96 default n 178 default n 97 help 179 help 98 This enables panic and oops message 180 This enables panic and oops message to be logged to a block dev 99 where it can be read back at some la 181 where it can be read back at some later point. 100 182 101 For more information, see Documentat 183 For more information, see Documentation/admin-guide/pstore-blk.rst 102 184 103 If unsure, say N. 185 If unsure, say N. 104 186 105 config PSTORE_BLK_BLKDEV 187 config PSTORE_BLK_BLKDEV 106 string "block device identifier" 188 string "block device identifier" 107 depends on PSTORE_BLK 189 depends on PSTORE_BLK 108 default "" 190 default "" 109 help 191 help 110 Which block device should be used fo 192 Which block device should be used for pstore/blk. 111 193 112 It accepts the following variants: 194 It accepts the following variants: 113 1) <hex_major><hex_minor> device num 195 1) <hex_major><hex_minor> device number in hexadecimal representation, 114 with no leading 0x, for example b 196 with no leading 0x, for example b302. 115 2) /dev/<disk_name> represents the d 197 2) /dev/<disk_name> represents the device name of disk 116 3) /dev/<disk_name><decimal> represe 198 3) /dev/<disk_name><decimal> represents the device name and number 117 of partition - device number of d 199 of partition - device number of disk plus the partition number 118 4) /dev/<disk_name>p<decimal> - same 200 4) /dev/<disk_name>p<decimal> - same as the above, this form is 119 used when disk name of partitione 201 used when disk name of partitioned disk ends with a digit. 120 5) PARTUUID=00112233-4455-6677-8899- 202 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the 121 unique id of a partition if the p 203 unique id of a partition if the partition table provides it. 122 The UUID may be either an EFI/GPT 204 The UUID may be either an EFI/GPT UUID, or refer to an MSDOS 123 partition using the format SSSSSS 205 partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero- 124 filled hex representation of the 206 filled hex representation of the 32-bit "NT disk signature", and PP 125 is a zero-filled hex representati 207 is a zero-filled hex representation of the 1-based partition number. 126 6) PARTUUID=<UUID>/PARTNROFF=<int> t 208 6) PARTUUID=<UUID>/PARTNROFF=<int> to select a partition in relation 127 to a partition with a known uniqu 209 to a partition with a known unique id. 128 7) <major>:<minor> major and minor n 210 7) <major>:<minor> major and minor number of the device separated by 129 a colon. 211 a colon. 130 212 131 NOTE that, both Kconfig and module p 213 NOTE that, both Kconfig and module parameters can configure 132 pstore/blk, but module parameters ha 214 pstore/blk, but module parameters have priority over Kconfig. 133 215 134 config PSTORE_BLK_KMSG_SIZE 216 config PSTORE_BLK_KMSG_SIZE 135 int "Size in Kbytes of kmsg dump log t 217 int "Size in Kbytes of kmsg dump log to store" 136 depends on PSTORE_BLK 218 depends on PSTORE_BLK 137 default 64 219 default 64 138 help 220 help 139 This just sets size of kmsg dump (oo 221 This just sets size of kmsg dump (oops, panic, etc) log for 140 pstore/blk. The size is in KB and mu 222 pstore/blk. The size is in KB and must be a multiple of 4. 141 223 142 NOTE that, both Kconfig and module p 224 NOTE that, both Kconfig and module parameters can configure 143 pstore/blk, but module parameters ha 225 pstore/blk, but module parameters have priority over Kconfig. 144 226 145 config PSTORE_BLK_MAX_REASON 227 config PSTORE_BLK_MAX_REASON 146 int "Maximum kmsg dump reason to store 228 int "Maximum kmsg dump reason to store" 147 depends on PSTORE_BLK 229 depends on PSTORE_BLK 148 default 2 230 default 2 149 help 231 help 150 The maximum reason for kmsg dumps to 232 The maximum reason for kmsg dumps to store. The default is 151 2 (KMSG_DUMP_OOPS), see include/linu 233 2 (KMSG_DUMP_OOPS), see include/linux/kmsg_dump.h's 152 enum kmsg_dump_reason for more detai 234 enum kmsg_dump_reason for more details. 153 235 154 NOTE that, both Kconfig and module p 236 NOTE that, both Kconfig and module parameters can configure 155 pstore/blk, but module parameters ha 237 pstore/blk, but module parameters have priority over Kconfig. 156 238 157 config PSTORE_BLK_PMSG_SIZE 239 config PSTORE_BLK_PMSG_SIZE 158 int "Size in Kbytes of pmsg to store" 240 int "Size in Kbytes of pmsg to store" 159 depends on PSTORE_BLK 241 depends on PSTORE_BLK 160 depends on PSTORE_PMSG 242 depends on PSTORE_PMSG 161 default 64 243 default 64 162 help 244 help 163 This just sets size of pmsg (pmsg_si 245 This just sets size of pmsg (pmsg_size) for pstore/blk. The size is 164 in KB and must be a multiple of 4. 246 in KB and must be a multiple of 4. 165 247 166 NOTE that, both Kconfig and module p 248 NOTE that, both Kconfig and module parameters can configure 167 pstore/blk, but module parameters ha 249 pstore/blk, but module parameters have priority over Kconfig. 168 250 169 config PSTORE_BLK_CONSOLE_SIZE 251 config PSTORE_BLK_CONSOLE_SIZE 170 int "Size in Kbytes of console log to 252 int "Size in Kbytes of console log to store" 171 depends on PSTORE_BLK 253 depends on PSTORE_BLK 172 depends on PSTORE_CONSOLE 254 depends on PSTORE_CONSOLE 173 default 64 255 default 64 174 help 256 help 175 This just sets size of console log ( 257 This just sets size of console log (console_size) to store via 176 pstore/blk. The size is in KB and mu 258 pstore/blk. The size is in KB and must be a multiple of 4. 177 259 178 NOTE that, both Kconfig and module p 260 NOTE that, both Kconfig and module parameters can configure 179 pstore/blk, but module parameters ha 261 pstore/blk, but module parameters have priority over Kconfig. 180 262 181 config PSTORE_BLK_FTRACE_SIZE 263 config PSTORE_BLK_FTRACE_SIZE 182 int "Size in Kbytes of ftrace log to s 264 int "Size in Kbytes of ftrace log to store" 183 depends on PSTORE_BLK 265 depends on PSTORE_BLK 184 depends on PSTORE_FTRACE 266 depends on PSTORE_FTRACE 185 default 64 267 default 64 186 help 268 help 187 This just sets size of ftrace log (f 269 This just sets size of ftrace log (ftrace_size) for pstore/blk. The 188 size is in KB and must be a multiple 270 size is in KB and must be a multiple of 4. 189 271 190 NOTE that, both Kconfig and module p 272 NOTE that, both Kconfig and module parameters can configure 191 pstore/blk, but module parameters ha 273 pstore/blk, but module parameters have priority over Kconfig.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.