xref: /linux/fs/bcachefs/Kconfig (revision 409f45387c937145adeeeebc6d6032c2ec232b35)
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_TESTS
65	bool "bcachefs unit and performance tests"
66	depends on BCACHEFS_FS
67	help
68	Include some unit and performance tests for the core btree code
69
70config BCACHEFS_LOCK_TIME_STATS
71       bool "bcachefs lock time statistics"
72       depends on BCACHEFS_FS
73       help
74       Expose statistics for how long we held a lock in debugfs
75
76config BCACHEFS_NO_LATENCY_ACCT
77	bool "disable latency accounting and time stats"
78	depends on BCACHEFS_FS
79	help
80	This disables device latency tracking and time stats, only for performance testing
81
82config BCACHEFS_SIX_OPTIMISTIC_SPIN
83	bool "Optimistic spinning for six locks"
84	depends on BCACHEFS_FS
85	depends on SMP
86	default y
87	help
88	Instead of immediately sleeping when attempting to take a six lock that
89	is held by another thread, spin for a short while, as long as the
90	thread owning the lock is running.
91
92config BCACHEFS_PATH_TRACEPOINTS
93	bool "Extra btree_path tracepoints"
94	depends on BCACHEFS_FS && TRACING
95	help
96	Enable extra tracepoints for debugging btree_path operations; we don't
97	normally want these enabled because they happen at very high rates.
98
99config MEAN_AND_VARIANCE_UNIT_TEST
100	tristate "mean_and_variance unit tests" if !KUNIT_ALL_TESTS
101	depends on KUNIT
102	depends on BCACHEFS_FS
103	default KUNIT_ALL_TESTS
104	help
105	  This option enables the kunit tests for mean_and_variance module.
106	  If unsure, say N.
107