xref: /openbmc/linux/fs/erofs/Kconfig (revision fd73a439)
147e4937aSGao Xiang# SPDX-License-Identifier: GPL-2.0-only
247e4937aSGao Xiang
347e4937aSGao Xiangconfig EROFS_FS
447e4937aSGao Xiang	tristate "EROFS filesystem support"
547e4937aSGao Xiang	depends on BLOCK
6a08e67a0SHuang Jianan	select FS_IOMAP
7b858a484SPratik Shinde	select LIBCRC32C
847e4937aSGao Xiang	help
9dfeab2e9SGao Xiang	  EROFS (Enhanced Read-Only File System) is a lightweight read-only
10dfeab2e9SGao Xiang	  file system with modern designs (e.g. no buffer heads, inline
11dfeab2e9SGao Xiang	  xattrs/data, chunk-based deduplication, multiple devices, etc.) for
12dfeab2e9SGao Xiang	  scenarios which need high-performance read-only solutions, e.g.
13dfeab2e9SGao Xiang	  smartphones with Android OS, LiveCDs and high-density hosts with
14dfeab2e9SGao Xiang	  numerous containers;
1547e4937aSGao Xiang
16dfeab2e9SGao Xiang	  It also provides fixed-sized output compression support in order to
17dfeab2e9SGao Xiang	  improve storage density as well as keep relatively higher compression
18dfeab2e9SGao Xiang	  ratios and implements in-place decompression to reuse the file page
19dfeab2e9SGao Xiang	  for compressed data temporarily with proper strategies, which is
20dfeab2e9SGao Xiang	  quite useful to ensure guaranteed end-to-end runtime decompression
21dfeab2e9SGao Xiang	  performance under extremely memory pressure without extra cost.
22dfeab2e9SGao Xiang
23dfeab2e9SGao Xiang	  See the documentation at <file:Documentation/filesystems/erofs.rst>
24dfeab2e9SGao Xiang	  for more details.
2547e4937aSGao Xiang
2647e4937aSGao Xiang	  If unsure, say N.
2747e4937aSGao Xiang
2847e4937aSGao Xiangconfig EROFS_FS_DEBUG
2947e4937aSGao Xiang	bool "EROFS debugging feature"
3047e4937aSGao Xiang	depends on EROFS_FS
3147e4937aSGao Xiang	help
3247e4937aSGao Xiang	  Print debugging messages and enable more BUG_ONs which check
3347e4937aSGao Xiang	  filesystem consistency and find potential issues aggressively,
3447e4937aSGao Xiang	  which can be used for Android eng build, for example.
3547e4937aSGao Xiang
3647e4937aSGao Xiang	  For daily use, say N.
3747e4937aSGao Xiang
3847e4937aSGao Xiangconfig EROFS_FS_XATTR
3947e4937aSGao Xiang	bool "EROFS extended attributes"
4047e4937aSGao Xiang	depends on EROFS_FS
41*fd73a439SJingbo Xu	select XXHASH
4247e4937aSGao Xiang	default y
4347e4937aSGao Xiang	help
4447e4937aSGao Xiang	  Extended attributes are name:value pairs associated with inodes by
4547e4937aSGao Xiang	  the kernel or by users (see the attr(5) manual page, or visit
4647e4937aSGao Xiang	  <http://acl.bestbits.at/> for details).
4747e4937aSGao Xiang
4847e4937aSGao Xiang	  If unsure, say N.
4947e4937aSGao Xiang
5047e4937aSGao Xiangconfig EROFS_FS_POSIX_ACL
5147e4937aSGao Xiang	bool "EROFS Access Control Lists"
5247e4937aSGao Xiang	depends on EROFS_FS_XATTR
5347e4937aSGao Xiang	select FS_POSIX_ACL
5447e4937aSGao Xiang	default y
5547e4937aSGao Xiang	help
5647e4937aSGao Xiang	  Posix Access Control Lists (ACLs) support permissions for users and
5747e4937aSGao Xiang	  groups beyond the owner/group/world scheme.
5847e4937aSGao Xiang
5947e4937aSGao Xiang	  To learn more about Access Control Lists, visit the POSIX ACLs for
6047e4937aSGao Xiang	  Linux website <http://acl.bestbits.at/>.
6147e4937aSGao Xiang
6247e4937aSGao Xiang	  If you don't know what Access Control Lists are, say N.
6347e4937aSGao Xiang
6447e4937aSGao Xiangconfig EROFS_FS_SECURITY
6547e4937aSGao Xiang	bool "EROFS Security Labels"
6647e4937aSGao Xiang	depends on EROFS_FS_XATTR
6747e4937aSGao Xiang	default y
6847e4937aSGao Xiang	help
6947e4937aSGao Xiang	  Security labels provide an access control facility to support Linux
7047e4937aSGao Xiang	  Security Models (LSMs) accepted by AppArmor, SELinux, Smack and TOMOYO
7147e4937aSGao Xiang	  Linux. This option enables an extended attribute handler for file
7247e4937aSGao Xiang	  security labels in the erofs filesystem, so that it requires enabling
7347e4937aSGao Xiang	  the extended attribute support in advance.
7447e4937aSGao Xiang
7547e4937aSGao Xiang	  If you are not using a security module, say N.
7647e4937aSGao Xiang
7747e4937aSGao Xiangconfig EROFS_FS_ZIP
7847e4937aSGao Xiang	bool "EROFS Data Compression Support"
7947e4937aSGao Xiang	depends on EROFS_FS
8047e4937aSGao Xiang	select LZ4_DECOMPRESS
8147e4937aSGao Xiang	default y
8247e4937aSGao Xiang	help
8347e4937aSGao Xiang	  Enable fixed-sized output compression for EROFS.
8447e4937aSGao Xiang
8547e4937aSGao Xiang	  If you don't want to enable compression feature, say N.
86622ceaddSGao Xiang
87622ceaddSGao Xiangconfig EROFS_FS_ZIP_LZMA
88622ceaddSGao Xiang	bool "EROFS LZMA compressed data support"
89622ceaddSGao Xiang	depends on EROFS_FS_ZIP
90622ceaddSGao Xiang	select XZ_DEC
91622ceaddSGao Xiang	select XZ_DEC_MICROLZMA
92622ceaddSGao Xiang	help
93622ceaddSGao Xiang	  Saying Y here includes support for reading EROFS file systems
94622ceaddSGao Xiang	  containing LZMA compressed data, specifically called microLZMA. it
95622ceaddSGao Xiang	  gives better compression ratios than the LZ4 algorithm, at the
96622ceaddSGao Xiang	  expense of more CPU overhead.
97622ceaddSGao Xiang
98622ceaddSGao Xiang	  LZMA support is an experimental feature for now and so most file
99622ceaddSGao Xiang	  systems will be readable without selecting this option.
100622ceaddSGao Xiang
101622ceaddSGao Xiang	  If unsure, say N.
102c6be2bd0SJeffle Xu
103ffa09b3bSGao Xiangconfig EROFS_FS_ZIP_DEFLATE
104ffa09b3bSGao Xiang	bool "EROFS DEFLATE compressed data support"
105ffa09b3bSGao Xiang	depends on EROFS_FS_ZIP
106ffa09b3bSGao Xiang	select ZLIB_INFLATE
107ffa09b3bSGao Xiang	help
108ffa09b3bSGao Xiang	  Saying Y here includes support for reading EROFS file systems
109ffa09b3bSGao Xiang	  containing DEFLATE compressed data.  It gives better compression
110ffa09b3bSGao Xiang	  ratios than the default LZ4 format, while it costs more CPU
111ffa09b3bSGao Xiang	  overhead.
112ffa09b3bSGao Xiang
113ffa09b3bSGao Xiang	  DEFLATE support is an experimental feature for now and so most
114ffa09b3bSGao Xiang	  file systems will be readable without selecting this option.
115ffa09b3bSGao Xiang
116ffa09b3bSGao Xiang	  If unsure, say N.
117ffa09b3bSGao Xiang
118c6be2bd0SJeffle Xuconfig EROFS_FS_ONDEMAND
119c6be2bd0SJeffle Xu	bool "EROFS fscache-based on-demand read support"
120c6be2bd0SJeffle Xu	depends on CACHEFILES_ONDEMAND && (EROFS_FS=m && FSCACHE || EROFS_FS=y && FSCACHE=y)
121c6be2bd0SJeffle Xu	default n
122c6be2bd0SJeffle Xu	help
123c6be2bd0SJeffle Xu	  This permits EROFS to use fscache-backed data blobs with on-demand
124c6be2bd0SJeffle Xu	  read support.
125c6be2bd0SJeffle Xu
126c6be2bd0SJeffle Xu	  If unsure, say N.
1273fffb589SSandeep Dhavale
1283fffb589SSandeep Dhavaleconfig EROFS_FS_PCPU_KTHREAD
1293fffb589SSandeep Dhavale	bool "EROFS per-cpu decompression kthread workers"
1303fffb589SSandeep Dhavale	depends on EROFS_FS_ZIP
1313fffb589SSandeep Dhavale	help
1323fffb589SSandeep Dhavale	  Saying Y here enables per-CPU kthread workers pool to carry out
1333fffb589SSandeep Dhavale	  async decompression for low latencies on some architectures.
1343fffb589SSandeep Dhavale
1353fffb589SSandeep Dhavale	  If unsure, say N.
1363fffb589SSandeep Dhavale
1373fffb589SSandeep Dhavaleconfig EROFS_FS_PCPU_KTHREAD_HIPRI
1383fffb589SSandeep Dhavale	bool "EROFS high priority per-CPU kthread workers"
1393fffb589SSandeep Dhavale	depends on EROFS_FS_ZIP && EROFS_FS_PCPU_KTHREAD
140cf7f2732SGao Xiang	default y
1413fffb589SSandeep Dhavale	help
1423fffb589SSandeep Dhavale	  This permits EROFS to configure per-CPU kthread workers to run
1433fffb589SSandeep Dhavale	  at higher priority.
1443fffb589SSandeep Dhavale
1453fffb589SSandeep Dhavale	  If unsure, say N.
146