Merge tag 'fsnotify_for_v6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[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         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_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
24 config 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
37 config 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
44 config 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
55 config 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
68 config 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
84 config 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
91 config 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
105 config 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
134 config 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
145 config 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
157 config 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
169 config 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
181 config 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.