Merge tag 'rproc-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc...
[linux.git] / fs / erofs / Kconfig
blob6ea60661fa55bcf2ead09bb71b33c92c21270269
1 # SPDX-License-Identifier: GPL-2.0-only
3 config EROFS_FS
4         tristate "EROFS filesystem support"
5         depends on BLOCK
6         select FS_IOMAP
7         select LIBCRC32C
8         help
9           EROFS (Enhanced Read-Only File System) is a lightweight read-only
10           file system with modern designs (e.g. no buffer heads, inline
11           xattrs/data, chunk-based deduplication, multiple devices, etc.) for
12           scenarios which need high-performance read-only solutions, e.g.
13           smartphones with Android OS, LiveCDs and high-density hosts with
14           numerous containers;
16           It also provides fixed-sized output compression support in order to
17           improve storage density as well as keep relatively higher compression
18           ratios and implements in-place decompression to reuse the file page
19           for compressed data temporarily with proper strategies, which is
20           quite useful to ensure guaranteed end-to-end runtime decompression
21           performance under extremely memory pressure without extra cost.
23           See the documentation at <file:Documentation/filesystems/erofs.rst>
24           and the web pages at <https://erofs.docs.kernel.org> for more details.
26           If unsure, say N.
28 config EROFS_FS_DEBUG
29         bool "EROFS debugging feature"
30         depends on EROFS_FS
31         help
32           Print debugging messages and enable more BUG_ONs which check
33           filesystem consistency and find potential issues aggressively,
34           which can be used for Android eng build, for example.
36           For daily use, say N.
38 config EROFS_FS_XATTR
39         bool "EROFS extended attributes"
40         depends on EROFS_FS
41         select XXHASH
42         default y
43         help
44           Extended attributes are name:value pairs associated with inodes by
45           the kernel or by users (see the attr(5) manual page, or visit
46           <http://acl.bestbits.at/> for details).
48           If unsure, say N.
50 config EROFS_FS_POSIX_ACL
51         bool "EROFS Access Control Lists"
52         depends on EROFS_FS_XATTR
53         select FS_POSIX_ACL
54         default y
55         help
56           Posix Access Control Lists (ACLs) support permissions for users and
57           groups beyond the owner/group/world scheme.
59           To learn more about Access Control Lists, visit the POSIX ACLs for
60           Linux website <http://acl.bestbits.at/>.
62           If you don't know what Access Control Lists are, say N.
64 config EROFS_FS_SECURITY
65         bool "EROFS Security Labels"
66         depends on EROFS_FS_XATTR
67         default y
68         help
69           Security labels provide an access control facility to support Linux
70           Security Models (LSMs) accepted by AppArmor, SELinux, Smack and TOMOYO
71           Linux. This option enables an extended attribute handler for file
72           security labels in the erofs filesystem, so that it requires enabling
73           the extended attribute support in advance.
75           If you are not using a security module, say N.
77 config EROFS_FS_BACKED_BY_FILE
78         bool "File-backed EROFS filesystem support"
79         depends on EROFS_FS
80         default y
81         help
82           This allows EROFS to use filesystem image files directly, without
83           the intercession of loopback block devices or likewise. It is
84           particularly useful for container images with numerous blobs and
85           other sandboxes, where loop devices behave intricately.  It can also
86           be used to simplify error-prone lifetime management of unnecessary
87           virtual block devices.
89           Note that this feature, along with ongoing fanotify pre-content
90           hooks, will eventually replace "EROFS over fscache."
92           If you don't want to enable this feature, say N.
94 config EROFS_FS_ZIP
95         bool "EROFS Data Compression Support"
96         depends on EROFS_FS
97         select LZ4_DECOMPRESS
98         default y
99         help
100           Enable fixed-sized output compression for EROFS.
102           If you don't want to enable compression feature, say N.
104 config EROFS_FS_ZIP_LZMA
105         bool "EROFS LZMA compressed data support"
106         depends on EROFS_FS_ZIP
107         select XZ_DEC
108         select XZ_DEC_MICROLZMA
109         help
110           Saying Y here includes support for reading EROFS file systems
111           containing LZMA compressed data, specifically called microLZMA. It
112           gives better compression ratios than the default LZ4 format, at the
113           expense of more CPU overhead.
115           If unsure, say N.
117 config EROFS_FS_ZIP_DEFLATE
118         bool "EROFS DEFLATE compressed data support"
119         depends on EROFS_FS_ZIP
120         select ZLIB_INFLATE
121         help
122           Saying Y here includes support for reading EROFS file systems
123           containing DEFLATE compressed data.  It gives better compression
124           ratios than the default LZ4 format, while it costs more CPU
125           overhead.
127           DEFLATE support is an experimental feature for now and so most
128           file systems will be readable without selecting this option.
130           If unsure, say N.
132 config EROFS_FS_ZIP_ZSTD
133         bool "EROFS Zstandard compressed data support"
134         depends on EROFS_FS_ZIP
135         select ZSTD_DECOMPRESS
136         help
137           Saying Y here includes support for reading EROFS file systems
138           containing Zstandard compressed data.  It gives better compression
139           ratios than the default LZ4 format, while it costs more CPU
140           overhead.
142           Zstandard support is an experimental feature for now and so most
143           file systems will be readable without selecting this option.
145           If unsure, say N.
147 config EROFS_FS_ONDEMAND
148         bool "EROFS fscache-based on-demand read support (deprecated)"
149         depends on EROFS_FS
150         select NETFS_SUPPORT
151         select FSCACHE
152         select CACHEFILES
153         select CACHEFILES_ONDEMAND
154         help
155           This permits EROFS to use fscache-backed data blobs with on-demand
156           read support.
158           It is now deprecated and scheduled to be removed from the kernel
159           after fanotify pre-content hooks are landed.
161           If unsure, say N.
163 config EROFS_FS_PCPU_KTHREAD
164         bool "EROFS per-cpu decompression kthread workers"
165         depends on EROFS_FS_ZIP
166         help
167           Saying Y here enables per-CPU kthread workers pool to carry out
168           async decompression for low latencies on some architectures.
170           If unsure, say N.
172 config EROFS_FS_PCPU_KTHREAD_HIPRI
173         bool "EROFS high priority per-CPU kthread workers"
174         depends on EROFS_FS_ZIP && EROFS_FS_PCPU_KTHREAD
175         default y
176         help
177           This permits EROFS to configure per-CPU kthread workers to run
178           at higher priority.
180           If unsure, say N.