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