Loading...
1# SPDX-License-Identifier: GPL-2.0-only
2config PSTORE
3 tristate "Persistent store support"
4 default n
5 help
6 This option enables generic access to platform level
7 persistent storage via "pstore" filesystem that can
8 be mounted as /dev/pstore. Only useful if you have
9 a platform level driver that registers with pstore to
10 provide the data, so you probably should just go say "Y"
11 (or "M") to a platform specific persistent store driver
12 (e.g. ACPI_APEI on X86) which will select this for you.
13 If you don't have a platform persistent store driver,
14 say N.
15
16config PSTORE_DEFAULT_KMSG_BYTES
17 int "Default kernel log storage space" if EXPERT
18 depends on PSTORE
19 default "10240"
20 help
21 Defines default size of pstore kernel log storage.
22 Can be enlarged if needed, not recommended to shrink it.
23
24config PSTORE_COMPRESS
25 bool "Pstore compression (deflate)"
26 depends on PSTORE
27 select ZLIB_INFLATE
28 select ZLIB_DEFLATE
29 default y
30 help
31 Whether pstore records should be compressed before being written to
32 the backing store. This is implemented using the zlib 'deflate'
33 algorithm, using the library implementation instead of using the full
34 blown crypto API. This reduces the risk of secondary oopses or other
35 problems while pstore is recording panic metadata.
36
37config PSTORE_CONSOLE
38 bool "Log kernel console messages"
39 depends on PSTORE
40 help
41 When the option is enabled, pstore will log all kernel
42 messages, even if no oops or panic happened.
43
44config PSTORE_PMSG
45 bool "Log user space messages"
46 depends on PSTORE
47 select RT_MUTEXES
48 help
49 When the option is enabled, pstore will export a character
50 interface /dev/pmsg0 to log user space messages. On reboot
51 data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID].
52
53 If unsure, say N.
54
55config PSTORE_FTRACE
56 bool "Persistent function tracer"
57 depends on PSTORE
58 depends on FUNCTION_TRACER
59 depends on DEBUG_FS
60 help
61 With this option kernel traces function calls into a persistent
62 ram buffer that can be decoded and dumped after reboot through
63 pstore filesystem. It can be used to determine what function
64 was last called before a reset or panic.
65
66 If unsure, say N.
67
68config PSTORE_RAM
69 tristate "Log panic/oops to a RAM buffer"
70 depends on PSTORE
71 depends on HAS_IOMEM
72 select REED_SOLOMON
73 select REED_SOLOMON_ENC8
74 select REED_SOLOMON_DEC8
75 help
76 This enables panic and oops messages to be logged to a circular
77 buffer in RAM where it can be read back at some later point.
78
79 Note that for historical reasons, the module will be named
80 "ramoops.ko".
81
82 For more information, see Documentation/admin-guide/ramoops.rst.
83
84config PSTORE_ZONE
85 tristate
86 depends on PSTORE
87 help
88 The common layer for pstore/blk (and pstore/ram in the future)
89 to manage storage in zones.
90
91config PSTORE_BLK
92 tristate "Log panic/oops to a block device"
93 depends on PSTORE
94 depends on BLOCK
95 select PSTORE_ZONE
96 default n
97 help
98 This enables panic and oops message to be logged to a block dev
99 where it can be read back at some later point.
100
101 For more information, see Documentation/admin-guide/pstore-blk.rst
102
103 If unsure, say N.
104
105config PSTORE_BLK_BLKDEV
106 string "block device identifier"
107 depends on PSTORE_BLK
108 default ""
109 help
110 Which block device should be used for pstore/blk.
111
112 It accepts the following variants:
113 1) <hex_major><hex_minor> device number in hexadecimal representation,
114 with no leading 0x, for example b302.
115 2) /dev/<disk_name> represents the device name of disk
116 3) /dev/<disk_name><decimal> represents the device name and number
117 of partition - device number of disk plus the partition number
118 4) /dev/<disk_name>p<decimal> - same as the above, this form is
119 used when disk name of partitioned disk ends with a digit.
120 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
121 unique id of a partition if the partition table provides it.
122 The UUID may be either an EFI/GPT UUID, or refer to an MSDOS
123 partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-
124 filled hex representation of the 32-bit "NT disk signature", and PP
125 is a zero-filled hex representation of the 1-based partition number.
126 6) PARTUUID=<UUID>/PARTNROFF=<int> to select a partition in relation
127 to a partition with a known unique id.
128 7) <major>:<minor> major and minor number of the device separated by
129 a colon.
130
131 NOTE that, both Kconfig and module parameters can configure
132 pstore/blk, but module parameters have priority over Kconfig.
133
134config PSTORE_BLK_KMSG_SIZE
135 int "Size in Kbytes of kmsg dump log to store"
136 depends on PSTORE_BLK
137 default 64
138 help
139 This just sets size of kmsg dump (oops, panic, etc) log for
140 pstore/blk. The size is in KB and must be a multiple of 4.
141
142 NOTE that, both Kconfig and module parameters can configure
143 pstore/blk, but module parameters have priority over Kconfig.
144
145config PSTORE_BLK_MAX_REASON
146 int "Maximum kmsg dump reason to store"
147 depends on PSTORE_BLK
148 default 2
149 help
150 The maximum reason for kmsg dumps to store. The default is
151 2 (KMSG_DUMP_OOPS), see include/linux/kmsg_dump.h's
152 enum kmsg_dump_reason for more details.
153
154 NOTE that, both Kconfig and module parameters can configure
155 pstore/blk, but module parameters have priority over Kconfig.
156
157config PSTORE_BLK_PMSG_SIZE
158 int "Size in Kbytes of pmsg to store"
159 depends on PSTORE_BLK
160 depends on PSTORE_PMSG
161 default 64
162 help
163 This just sets size of pmsg (pmsg_size) for pstore/blk. The size is
164 in KB and must be a multiple of 4.
165
166 NOTE that, both Kconfig and module parameters can configure
167 pstore/blk, but module parameters have priority over Kconfig.
168
169config PSTORE_BLK_CONSOLE_SIZE
170 int "Size in Kbytes of console log to store"
171 depends on PSTORE_BLK
172 depends on PSTORE_CONSOLE
173 default 64
174 help
175 This just sets size of console log (console_size) to store via
176 pstore/blk. The size is in KB and must be a multiple of 4.
177
178 NOTE that, both Kconfig and module parameters can configure
179 pstore/blk, but module parameters have priority over Kconfig.
180
181config PSTORE_BLK_FTRACE_SIZE
182 int "Size in Kbytes of ftrace log to store"
183 depends on PSTORE_BLK
184 depends on PSTORE_FTRACE
185 default 64
186 help
187 This just sets size of ftrace log (ftrace_size) for pstore/blk. The
188 size is in KB and must be a multiple of 4.
189
190 NOTE that, both Kconfig and module parameters can configure
191 pstore/blk, but module parameters have priority over Kconfig.
1config PSTORE
2 tristate "Persistent store support"
3 select CRYPTO if PSTORE_COMPRESS
4 default n
5 help
6 This option enables generic access to platform level
7 persistent storage via "pstore" filesystem that can
8 be mounted as /dev/pstore. Only useful if you have
9 a platform level driver that registers with pstore to
10 provide the data, so you probably should just go say "Y"
11 (or "M") to a platform specific persistent store driver
12 (e.g. ACPI_APEI on X86) which will select this for you.
13 If you don't have a platform persistent store driver,
14 say N.
15
16config PSTORE_DEFLATE_COMPRESS
17 tristate "DEFLATE (ZLIB) compression"
18 default y
19 depends on PSTORE
20 select CRYPTO_DEFLATE
21 help
22 This option enables DEFLATE (also known as ZLIB) compression
23 algorithm support.
24
25config PSTORE_LZO_COMPRESS
26 tristate "LZO compression"
27 depends on PSTORE
28 select CRYPTO_LZO
29 help
30 This option enables LZO compression algorithm support.
31
32config PSTORE_LZ4_COMPRESS
33 tristate "LZ4 compression"
34 depends on PSTORE
35 select CRYPTO_LZ4
36 help
37 This option enables LZ4 compression algorithm support.
38
39config PSTORE_LZ4HC_COMPRESS
40 tristate "LZ4HC compression"
41 depends on PSTORE
42 select CRYPTO_LZ4HC
43 help
44 This option enables LZ4HC (high compression) mode algorithm.
45
46config PSTORE_842_COMPRESS
47 bool "842 compression"
48 depends on PSTORE
49 select CRYPTO_842
50 help
51 This option enables 842 compression algorithm support.
52
53config PSTORE_COMPRESS
54 def_bool y
55 depends on PSTORE
56 depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS || \
57 PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS || \
58 PSTORE_842_COMPRESS
59
60choice
61 prompt "Default pstore compression algorithm"
62 depends on PSTORE_COMPRESS
63 help
64 This option chooses the default active compression algorithm.
65 This change be changed at boot with "pstore.compress=..." on
66 the kernel command line.
67
68 Currently, pstore has support for 5 compression algorithms:
69 deflate, lzo, lz4, lz4hc and 842.
70
71 The default compression algorithm is deflate.
72
73 config PSTORE_DEFLATE_COMPRESS_DEFAULT
74 bool "deflate" if PSTORE_DEFLATE_COMPRESS
75
76 config PSTORE_LZO_COMPRESS_DEFAULT
77 bool "lzo" if PSTORE_LZO_COMPRESS
78
79 config PSTORE_LZ4_COMPRESS_DEFAULT
80 bool "lz4" if PSTORE_LZ4_COMPRESS
81
82 config PSTORE_LZ4HC_COMPRESS_DEFAULT
83 bool "lz4hc" if PSTORE_LZ4HC_COMPRESS
84
85 config PSTORE_842_COMPRESS_DEFAULT
86 bool "842" if PSTORE_842_COMPRESS
87
88endchoice
89
90config PSTORE_COMPRESS_DEFAULT
91 string
92 depends on PSTORE_COMPRESS
93 default "deflate" if PSTORE_DEFLATE_COMPRESS_DEFAULT
94 default "lzo" if PSTORE_LZO_COMPRESS_DEFAULT
95 default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT
96 default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT
97 default "842" if PSTORE_842_COMPRESS_DEFAULT
98
99config PSTORE_CONSOLE
100 bool "Log kernel console messages"
101 depends on PSTORE
102 help
103 When the option is enabled, pstore will log all kernel
104 messages, even if no oops or panic happened.
105
106config PSTORE_PMSG
107 bool "Log user space messages"
108 depends on PSTORE
109 help
110 When the option is enabled, pstore will export a character
111 interface /dev/pmsg0 to log user space messages. On reboot
112 data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID].
113
114 If unsure, say N.
115
116config PSTORE_FTRACE
117 bool "Persistent function tracer"
118 depends on PSTORE
119 depends on FUNCTION_TRACER
120 depends on DEBUG_FS
121 help
122 With this option kernel traces function calls into a persistent
123 ram buffer that can be decoded and dumped after reboot through
124 pstore filesystem. It can be used to determine what function
125 was last called before a reset or panic.
126
127 If unsure, say N.
128
129config PSTORE_RAM
130 tristate "Log panic/oops to a RAM buffer"
131 depends on PSTORE
132 depends on HAS_IOMEM
133 depends on HAVE_MEMBLOCK
134 select REED_SOLOMON
135 select REED_SOLOMON_ENC8
136 select REED_SOLOMON_DEC8
137 help
138 This enables panic and oops messages to be logged to a circular
139 buffer in RAM where it can be read back at some later point.
140
141 Note that for historical reasons, the module will be named
142 "ramoops.ko".
143
144 For more information, see Documentation/admin-guide/ramoops.rst.