xref: /linux/fs/bcachefs/Kconfig (revision 1854c7f79dcaaba9f1c0b131445ace03f9fd532d)
11c6fdbd8SKent Overstreet
21c6fdbd8SKent Overstreetconfig BCACHEFS_FS
3dbc7deb2SKent Overstreet	tristate "bcachefs filesystem support (EXPERIMENTAL)"
41c6fdbd8SKent Overstreet	depends on BLOCK
51c6fdbd8SKent Overstreet	select EXPORTFS
61c6fdbd8SKent Overstreet	select CLOSURES
71c6fdbd8SKent Overstreet	select LIBCRC32C
804c2c34fSKent Overstreet	select CRC64
91c6fdbd8SKent Overstreet	select FS_POSIX_ACL
101c6fdbd8SKent Overstreet	select LZ4_COMPRESS
111c6fdbd8SKent Overstreet	select LZ4_DECOMPRESS
12986e9842SKent Overstreet	select LZ4HC_COMPRESS
13986e9842SKent Overstreet	select LZ4HC_DECOMPRESS
141c6fdbd8SKent Overstreet	select ZLIB_DEFLATE
151c6fdbd8SKent Overstreet	select ZLIB_INFLATE
161c6fdbd8SKent Overstreet	select ZSTD_COMPRESS
171c6fdbd8SKent Overstreet	select ZSTD_DECOMPRESS
18cc354fa7SEric Biggers	select CRYPTO
191c6fdbd8SKent Overstreet	select CRYPTO_SHA256
201c6fdbd8SKent Overstreet	select CRYPTO_CHACHA20
211c6fdbd8SKent Overstreet	select CRYPTO_POLY1305
221c6fdbd8SKent Overstreet	select KEYS
23cd575ddfSKent Overstreet	select RAID6_PQ
24cd575ddfSKent Overstreet	select XOR_BLOCKS
2541e63382Sjpsollie	select XXHASH
26876c7af3SKent Overstreet	select SRCU
27615f867cSKent Overstreet	select SYMBOLIC_ERRNAME
2892a8b224SKuan-Wei Chiu	select MIN_HEAP
291c6fdbd8SKent Overstreet	help
301c6fdbd8SKent Overstreet	The bcachefs filesystem - a modern, copy on write filesystem, with
311c6fdbd8SKent Overstreet	support for multiple devices, compression, checksumming, etc.
321c6fdbd8SKent Overstreet
331c6fdbd8SKent Overstreetconfig BCACHEFS_QUOTA
341c6fdbd8SKent Overstreet	bool "bcachefs quota support"
351c6fdbd8SKent Overstreet	depends on BCACHEFS_FS
361c6fdbd8SKent Overstreet	select QUOTACTL
371c6fdbd8SKent Overstreet
386201d91eSKent Overstreetconfig BCACHEFS_ERASURE_CODING
396201d91eSKent Overstreet	bool "bcachefs erasure coding (RAID5/6) support (EXPERIMENTAL)"
406201d91eSKent Overstreet	depends on BCACHEFS_FS
416201d91eSKent Overstreet	select QUOTACTL
426201d91eSKent Overstreet	help
436201d91eSKent Overstreet	This enables the "erasure_code" filesysystem and inode option, which
446201d91eSKent Overstreet	organizes data into reed-solomon stripes instead of ordinary
456201d91eSKent Overstreet	replication.
466201d91eSKent Overstreet
476201d91eSKent Overstreet	WARNING: this feature is still undergoing on disk format changes, and
486201d91eSKent Overstreet	should only be enabled for testing purposes.
496201d91eSKent Overstreet
501c6fdbd8SKent Overstreetconfig BCACHEFS_POSIX_ACL
511c6fdbd8SKent Overstreet	bool "bcachefs POSIX ACL support"
521c6fdbd8SKent Overstreet	depends on BCACHEFS_FS
531c6fdbd8SKent Overstreet	select FS_POSIX_ACL
541c6fdbd8SKent Overstreet
551c6fdbd8SKent Overstreetconfig BCACHEFS_DEBUG
561c6fdbd8SKent Overstreet	bool "bcachefs debugging"
571c6fdbd8SKent Overstreet	depends on BCACHEFS_FS
581c6fdbd8SKent Overstreet	help
591c6fdbd8SKent Overstreet	Enables many extra debugging checks and assertions.
601c6fdbd8SKent Overstreet
611c6fdbd8SKent Overstreet	The resulting code will be significantly slower than normal; you
621c6fdbd8SKent Overstreet	probably shouldn't select this option unless you're a developer.
631c6fdbd8SKent Overstreet
64*9cf6b84bSKent Overstreetconfig BCACHEFS_INJECT_TRANSACTION_RESTARTS
65*9cf6b84bSKent Overstreet	bool "Randomly inject transaction restarts"
66*9cf6b84bSKent Overstreet	depends on BCACHEFS_DEBUG
67*9cf6b84bSKent Overstreet	help
68*9cf6b84bSKent Overstreet	Randomly inject transaction restarts in a few core paths - may have a
69*9cf6b84bSKent Overstreet	significant performance penalty
70*9cf6b84bSKent Overstreet
711c6fdbd8SKent Overstreetconfig BCACHEFS_TESTS
721c6fdbd8SKent Overstreet	bool "bcachefs unit and performance tests"
731c6fdbd8SKent Overstreet	depends on BCACHEFS_FS
741c6fdbd8SKent Overstreet	help
751c6fdbd8SKent Overstreet	Include some unit and performance tests for the core btree code
761c6fdbd8SKent Overstreet
77c807ca95SDaniel Hillconfig BCACHEFS_LOCK_TIME_STATS
78c807ca95SDaniel Hill       bool "bcachefs lock time statistics"
79c807ca95SDaniel Hill       depends on BCACHEFS_FS
80c807ca95SDaniel Hill       help
81c807ca95SDaniel Hill       Expose statistics for how long we held a lock in debugfs
82c807ca95SDaniel Hill
831c6fdbd8SKent Overstreetconfig BCACHEFS_NO_LATENCY_ACCT
841c6fdbd8SKent Overstreet	bool "disable latency accounting and time stats"
851c6fdbd8SKent Overstreet	depends on BCACHEFS_FS
861c6fdbd8SKent Overstreet	help
871c6fdbd8SKent Overstreet	This disables device latency tracking and time stats, only for performance testing
8892095781SDaniel Hill
8901117332SKent Overstreetconfig BCACHEFS_SIX_OPTIMISTIC_SPIN
9001117332SKent Overstreet	bool "Optimistic spinning for six locks"
9101117332SKent Overstreet	depends on BCACHEFS_FS
9201117332SKent Overstreet	depends on SMP
9301117332SKent Overstreet	default y
9401117332SKent Overstreet	help
9501117332SKent Overstreet	Instead of immediately sleeping when attempting to take a six lock that
9601117332SKent Overstreet	is held by another thread, spin for a short while, as long as the
9701117332SKent Overstreet	thread owning the lock is running.
9801117332SKent Overstreet
9932ed4a62SKent Overstreetconfig BCACHEFS_PATH_TRACEPOINTS
10032ed4a62SKent Overstreet	bool "Extra btree_path tracepoints"
101d36b3e74SGeert Uytterhoeven	depends on BCACHEFS_FS && TRACING
10232ed4a62SKent Overstreet	help
10332ed4a62SKent Overstreet	Enable extra tracepoints for debugging btree_path operations; we don't
10432ed4a62SKent Overstreet	normally want these enabled because they happen at very high rates.
10532ed4a62SKent Overstreet
10692095781SDaniel Hillconfig MEAN_AND_VARIANCE_UNIT_TEST
10792095781SDaniel Hill	tristate "mean_and_variance unit tests" if !KUNIT_ALL_TESTS
10892095781SDaniel Hill	depends on KUNIT
1094db8ac86SKent Overstreet	depends on BCACHEFS_FS
11092095781SDaniel Hill	default KUNIT_ALL_TESTS
11192095781SDaniel Hill	help
11292095781SDaniel Hill	  This option enables the kunit tests for mean_and_variance module.
11392095781SDaniel Hill	  If unsure, say N.
114