GNU Linux-libre 5.4.257-gnu1
[releases.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_DEFLATE_COMPRESS
18         tristate "DEFLATE (ZLIB) compression"
19         default y
20         depends on PSTORE
21         select CRYPTO_DEFLATE
22         help
23           This option enables DEFLATE (also known as ZLIB) compression
24           algorithm support.
25
26 config PSTORE_LZO_COMPRESS
27         tristate "LZO compression"
28         depends on PSTORE
29         select CRYPTO_LZO
30         help
31           This option enables LZO compression algorithm support.
32
33 config PSTORE_LZ4_COMPRESS
34         tristate "LZ4 compression"
35         depends on PSTORE
36         select CRYPTO_LZ4
37         help
38           This option enables LZ4 compression algorithm support.
39
40 config PSTORE_LZ4HC_COMPRESS
41         tristate "LZ4HC compression"
42         depends on PSTORE
43         select CRYPTO_LZ4HC
44         help
45           This option enables LZ4HC (high compression) mode algorithm.
46
47 config PSTORE_842_COMPRESS
48         bool "842 compression"
49         depends on PSTORE
50         select CRYPTO_842
51         help
52           This option enables 842 compression algorithm support.
53
54 config PSTORE_ZSTD_COMPRESS
55         bool "zstd compression"
56         depends on PSTORE
57         select CRYPTO_ZSTD
58         help
59           This option enables zstd compression algorithm support.
60
61 config PSTORE_COMPRESS
62         def_bool y
63         depends on PSTORE
64         depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS ||    \
65                    PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS ||      \
66                    PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS
67
68 choice
69         prompt "Default pstore compression algorithm"
70         depends on PSTORE_COMPRESS
71         help
72           This option chooses the default active compression algorithm.
73           This change be changed at boot with "pstore.compress=..." on
74           the kernel command line.
75
76           Currently, pstore has support for 6 compression algorithms:
77           deflate, lzo, lz4, lz4hc, 842 and zstd.
78
79           The default compression algorithm is deflate.
80
81         config PSTORE_DEFLATE_COMPRESS_DEFAULT
82                 bool "deflate" if PSTORE_DEFLATE_COMPRESS
83
84         config PSTORE_LZO_COMPRESS_DEFAULT
85                 bool "lzo" if PSTORE_LZO_COMPRESS
86
87         config PSTORE_LZ4_COMPRESS_DEFAULT
88                 bool "lz4" if PSTORE_LZ4_COMPRESS
89
90         config PSTORE_LZ4HC_COMPRESS_DEFAULT
91                 bool "lz4hc" if PSTORE_LZ4HC_COMPRESS
92
93         config PSTORE_842_COMPRESS_DEFAULT
94                 bool "842" if PSTORE_842_COMPRESS
95
96         config PSTORE_ZSTD_COMPRESS_DEFAULT
97                 bool "zstd" if PSTORE_ZSTD_COMPRESS
98
99 endchoice
100
101 config PSTORE_COMPRESS_DEFAULT
102         string
103         depends on PSTORE_COMPRESS
104         default "deflate" if PSTORE_DEFLATE_COMPRESS_DEFAULT
105         default "lzo" if PSTORE_LZO_COMPRESS_DEFAULT
106         default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT
107         default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT
108         default "842" if PSTORE_842_COMPRESS_DEFAULT
109         default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT
110
111 config PSTORE_CONSOLE
112         bool "Log kernel console messages"
113         depends on PSTORE
114         help
115           When the option is enabled, pstore will log all kernel
116           messages, even if no oops or panic happened.
117
118 config PSTORE_PMSG
119         bool "Log user space messages"
120         depends on PSTORE
121         select RT_MUTEXES
122         help
123           When the option is enabled, pstore will export a character
124           interface /dev/pmsg0 to log user space messages. On reboot
125           data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID].
126
127           If unsure, say N.
128
129 config PSTORE_FTRACE
130         bool "Persistent function tracer"
131         depends on PSTORE
132         depends on FUNCTION_TRACER
133         depends on DEBUG_FS
134         help
135           With this option kernel traces function calls into a persistent
136           ram buffer that can be decoded and dumped after reboot through
137           pstore filesystem. It can be used to determine what function
138           was last called before a reset or panic.
139
140           If unsure, say N.
141
142 config PSTORE_RAM
143         tristate "Log panic/oops to a RAM buffer"
144         depends on PSTORE
145         depends on HAS_IOMEM
146         select REED_SOLOMON
147         select REED_SOLOMON_ENC8
148         select REED_SOLOMON_DEC8
149         help
150           This enables panic and oops messages to be logged to a circular
151           buffer in RAM where it can be read back at some later point.
152
153           Note that for historical reasons, the module will be named
154           "ramoops.ko".
155
156           For more information, see Documentation/admin-guide/ramoops.rst.