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