GNU Linux-libre 4.19.295-gnu1
[releases.git] / fs / pstore / Kconfig
1 config 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
16 config 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
25 config 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
32 config 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
39 config 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
46 config 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
53 config PSTORE_ZSTD_COMPRESS
54         bool "zstd compression"
55         depends on PSTORE
56         select CRYPTO_ZSTD
57         help
58           This option enables zstd compression algorithm support.
59
60 config PSTORE_COMPRESS
61         def_bool y
62         depends on PSTORE
63         depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS ||    \
64                    PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS ||      \
65                    PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS
66
67 choice
68         prompt "Default pstore compression algorithm"
69         depends on PSTORE_COMPRESS
70         help
71           This option chooses the default active compression algorithm.
72           This change be changed at boot with "pstore.compress=..." on
73           the kernel command line.
74
75           Currently, pstore has support for 6 compression algorithms:
76           deflate, lzo, lz4, lz4hc, 842 and zstd.
77
78           The default compression algorithm is deflate.
79
80         config PSTORE_DEFLATE_COMPRESS_DEFAULT
81                 bool "deflate" if PSTORE_DEFLATE_COMPRESS
82
83         config PSTORE_LZO_COMPRESS_DEFAULT
84                 bool "lzo" if PSTORE_LZO_COMPRESS
85
86         config PSTORE_LZ4_COMPRESS_DEFAULT
87                 bool "lz4" if PSTORE_LZ4_COMPRESS
88
89         config PSTORE_LZ4HC_COMPRESS_DEFAULT
90                 bool "lz4hc" if PSTORE_LZ4HC_COMPRESS
91
92         config PSTORE_842_COMPRESS_DEFAULT
93                 bool "842" if PSTORE_842_COMPRESS
94
95         config PSTORE_ZSTD_COMPRESS_DEFAULT
96                 bool "zstd" if PSTORE_ZSTD_COMPRESS
97
98 endchoice
99
100 config PSTORE_COMPRESS_DEFAULT
101         string
102         depends on PSTORE_COMPRESS
103         default "deflate" if PSTORE_DEFLATE_COMPRESS_DEFAULT
104         default "lzo" if PSTORE_LZO_COMPRESS_DEFAULT
105         default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT
106         default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT
107         default "842" if PSTORE_842_COMPRESS_DEFAULT
108         default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT
109
110 config PSTORE_CONSOLE
111         bool "Log kernel console messages"
112         depends on PSTORE
113         help
114           When the option is enabled, pstore will log all kernel
115           messages, even if no oops or panic happened.
116
117 config PSTORE_PMSG
118         bool "Log user space messages"
119         depends on PSTORE
120         select RT_MUTEXES
121         help
122           When the option is enabled, pstore will export a character
123           interface /dev/pmsg0 to log user space messages. On reboot
124           data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID].
125
126           If unsure, say N.
127
128 config PSTORE_FTRACE
129         bool "Persistent function tracer"
130         depends on PSTORE
131         depends on FUNCTION_TRACER
132         depends on DEBUG_FS
133         help
134           With this option kernel traces function calls into a persistent
135           ram buffer that can be decoded and dumped after reboot through
136           pstore filesystem. It can be used to determine what function
137           was last called before a reset or panic.
138
139           If unsure, say N.
140
141 config PSTORE_RAM
142         tristate "Log panic/oops to a RAM buffer"
143         depends on PSTORE
144         depends on HAS_IOMEM
145         depends on HAVE_MEMBLOCK
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.