GNU Linux-libre 4.19.211-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         help
121           When the option is enabled, pstore will export a character
122           interface /dev/pmsg0 to log user space messages. On reboot
123           data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID].
124
125           If unsure, say N.
126
127 config PSTORE_FTRACE
128         bool "Persistent function tracer"
129         depends on PSTORE
130         depends on FUNCTION_TRACER
131         depends on DEBUG_FS
132         help
133           With this option kernel traces function calls into a persistent
134           ram buffer that can be decoded and dumped after reboot through
135           pstore filesystem. It can be used to determine what function
136           was last called before a reset or panic.
137
138           If unsure, say N.
139
140 config PSTORE_RAM
141         tristate "Log panic/oops to a RAM buffer"
142         depends on PSTORE
143         depends on HAS_IOMEM
144         depends on HAVE_MEMBLOCK
145         select REED_SOLOMON
146         select REED_SOLOMON_ENC8
147         select REED_SOLOMON_DEC8
148         help
149           This enables panic and oops messages to be logged to a circular
150           buffer in RAM where it can be read back at some later point.
151
152           Note that for historical reasons, the module will be named
153           "ramoops.ko".
154
155           For more information, see Documentation/admin-guide/ramoops.rst.