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