sched: Prevent balance_push() on remote runqueues
[linux-2.6-microblaze.git] / fs / pstore / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config 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
17 config 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
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
69 config 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
76 choice
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
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
118
119 config 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
126 config PSTORE_PMSG
127         bool "Log user space messages"
128         depends on PSTORE
129         help
130           When the option is enabled, pstore will export a character
131           interface /dev/pmsg0 to log user space messages. On reboot
132           data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID].
133
134           If unsure, say N.
135
136 config PSTORE_FTRACE
137         bool "Persistent function tracer"
138         depends on PSTORE
139         depends on FUNCTION_TRACER
140         depends on DEBUG_FS
141         help
142           With this option kernel traces function calls into a persistent
143           ram buffer that can be decoded and dumped after reboot through
144           pstore filesystem. It can be used to determine what function
145           was last called before a reset or panic.
146
147           If unsure, say N.
148
149 config PSTORE_RAM
150         tristate "Log panic/oops to a RAM buffer"
151         depends on PSTORE
152         depends on HAS_IOMEM
153         select REED_SOLOMON
154         select REED_SOLOMON_ENC8
155         select REED_SOLOMON_DEC8
156         help
157           This enables panic and oops messages to be logged to a circular
158           buffer in RAM where it can be read back at some later point.
159
160           Note that for historical reasons, the module will be named
161           "ramoops.ko".
162
163           For more information, see Documentation/admin-guide/ramoops.rst.
164
165 config PSTORE_ZONE
166         tristate
167         depends on PSTORE
168         help
169           The common layer for pstore/blk (and pstore/ram in the future)
170           to manage storage in zones.
171
172 config PSTORE_BLK
173         tristate "Log panic/oops to a block device"
174         depends on PSTORE
175         depends on BLOCK
176         depends on BROKEN
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
187 config 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
216 config 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
227 config 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
239 config 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
251 config 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
263 config 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.