xref: /linux/fs/bcachefs/Kconfig (revision 55f1b540d893da740a81200450014c45a8103f54)
1
2config BCACHEFS_FS
3	tristate "bcachefs filesystem support (EXPERIMENTAL)"
4	depends on BLOCK
5	select EXPORTFS
6	select CLOSURES
7	select LIBCRC32C
8	select CRC64
9	select FS_POSIX_ACL
10	select LZ4_COMPRESS
11	select LZ4_DECOMPRESS
12	select LZ4HC_COMPRESS
13	select LZ4HC_DECOMPRESS
14	select ZLIB_DEFLATE
15	select ZLIB_INFLATE
16	select ZSTD_COMPRESS
17	select ZSTD_DECOMPRESS
18	select CRYPTO_SHA256
19	select CRYPTO_CHACHA20
20	select CRYPTO_POLY1305
21	select KEYS
22	select RAID6_PQ
23	select XOR_BLOCKS
24	select XXHASH
25	select SRCU
26	select SYMBOLIC_ERRNAME
27	help
28	The bcachefs filesystem - a modern, copy on write filesystem, with
29	support for multiple devices, compression, checksumming, etc.
30
31config BCACHEFS_QUOTA
32	bool "bcachefs quota support"
33	depends on BCACHEFS_FS
34	select QUOTACTL
35
36config BCACHEFS_ERASURE_CODING
37	bool "bcachefs erasure coding (RAID5/6) support (EXPERIMENTAL)"
38	depends on BCACHEFS_FS
39	select QUOTACTL
40	help
41	This enables the "erasure_code" filesysystem and inode option, which
42	organizes data into reed-solomon stripes instead of ordinary
43	replication.
44
45	WARNING: this feature is still undergoing on disk format changes, and
46	should only be enabled for testing purposes.
47
48config BCACHEFS_POSIX_ACL
49	bool "bcachefs POSIX ACL support"
50	depends on BCACHEFS_FS
51	select FS_POSIX_ACL
52
53config BCACHEFS_DEBUG
54	bool "bcachefs debugging"
55	depends on BCACHEFS_FS
56	help
57	Enables many extra debugging checks and assertions.
58
59	The resulting code will be significantly slower than normal; you
60	probably shouldn't select this option unless you're a developer.
61
62config BCACHEFS_TESTS
63	bool "bcachefs unit and performance tests"
64	depends on BCACHEFS_FS
65	help
66	Include some unit and performance tests for the core btree code
67
68config BCACHEFS_LOCK_TIME_STATS
69       bool "bcachefs lock time statistics"
70       depends on BCACHEFS_FS
71       help
72       Expose statistics for how long we held a lock in debugfs
73
74config BCACHEFS_NO_LATENCY_ACCT
75	bool "disable latency accounting and time stats"
76	depends on BCACHEFS_FS
77	help
78	This disables device latency tracking and time stats, only for performance testing
79
80config BCACHEFS_SIX_OPTIMISTIC_SPIN
81	bool "Optimistic spinning for six locks"
82	depends on BCACHEFS_FS
83	depends on SMP
84	default y
85	help
86	Instead of immediately sleeping when attempting to take a six lock that
87	is held by another thread, spin for a short while, as long as the
88	thread owning the lock is running.
89
90config BCACHEFS_PATH_TRACEPOINTS
91	bool "Extra btree_path tracepoints"
92	depends on BCACHEFS_FS
93	help
94	Enable extra tracepoints for debugging btree_path operations; we don't
95	normally want these enabled because they happen at very high rates.
96
97config MEAN_AND_VARIANCE_UNIT_TEST
98	tristate "mean_and_variance unit tests" if !KUNIT_ALL_TESTS
99	depends on KUNIT
100	depends on BCACHEFS_FS
101	default KUNIT_ALL_TESTS
102	help
103	  This option enables the kunit tests for mean_and_variance module.
104	  If unsure, say N.
105