xref: /linux/fs/bcachefs/Kconfig (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
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
181c6fdbd8SKent Overstreet	select CRYPTO_SHA256
191c6fdbd8SKent Overstreet	select CRYPTO_CHACHA20
201c6fdbd8SKent Overstreet	select CRYPTO_POLY1305
211c6fdbd8SKent Overstreet	select KEYS
22cd575ddfSKent Overstreet	select RAID6_PQ
23cd575ddfSKent Overstreet	select XOR_BLOCKS
2441e63382Sjpsollie	select XXHASH
25876c7af3SKent Overstreet	select SRCU
26615f867cSKent Overstreet	select SYMBOLIC_ERRNAME
271c6fdbd8SKent Overstreet	help
281c6fdbd8SKent Overstreet	The bcachefs filesystem - a modern, copy on write filesystem, with
291c6fdbd8SKent Overstreet	support for multiple devices, compression, checksumming, etc.
301c6fdbd8SKent Overstreet
311c6fdbd8SKent Overstreetconfig BCACHEFS_QUOTA
321c6fdbd8SKent Overstreet	bool "bcachefs quota support"
331c6fdbd8SKent Overstreet	depends on BCACHEFS_FS
341c6fdbd8SKent Overstreet	select QUOTACTL
351c6fdbd8SKent Overstreet
366201d91eSKent Overstreetconfig BCACHEFS_ERASURE_CODING
376201d91eSKent Overstreet	bool "bcachefs erasure coding (RAID5/6) support (EXPERIMENTAL)"
386201d91eSKent Overstreet	depends on BCACHEFS_FS
396201d91eSKent Overstreet	select QUOTACTL
406201d91eSKent Overstreet	help
416201d91eSKent Overstreet	This enables the "erasure_code" filesysystem and inode option, which
426201d91eSKent Overstreet	organizes data into reed-solomon stripes instead of ordinary
436201d91eSKent Overstreet	replication.
446201d91eSKent Overstreet
456201d91eSKent Overstreet	WARNING: this feature is still undergoing on disk format changes, and
466201d91eSKent Overstreet	should only be enabled for testing purposes.
476201d91eSKent Overstreet
481c6fdbd8SKent Overstreetconfig BCACHEFS_POSIX_ACL
491c6fdbd8SKent Overstreet	bool "bcachefs POSIX ACL support"
501c6fdbd8SKent Overstreet	depends on BCACHEFS_FS
511c6fdbd8SKent Overstreet	select FS_POSIX_ACL
521c6fdbd8SKent Overstreet
531c6fdbd8SKent Overstreetconfig BCACHEFS_DEBUG
541c6fdbd8SKent Overstreet	bool "bcachefs debugging"
551c6fdbd8SKent Overstreet	depends on BCACHEFS_FS
561c6fdbd8SKent Overstreet	help
571c6fdbd8SKent Overstreet	Enables many extra debugging checks and assertions.
581c6fdbd8SKent Overstreet
591c6fdbd8SKent Overstreet	The resulting code will be significantly slower than normal; you
601c6fdbd8SKent Overstreet	probably shouldn't select this option unless you're a developer.
611c6fdbd8SKent Overstreet
621c6fdbd8SKent Overstreetconfig BCACHEFS_TESTS
631c6fdbd8SKent Overstreet	bool "bcachefs unit and performance tests"
641c6fdbd8SKent Overstreet	depends on BCACHEFS_FS
651c6fdbd8SKent Overstreet	help
661c6fdbd8SKent Overstreet	Include some unit and performance tests for the core btree code
671c6fdbd8SKent Overstreet
68c807ca95SDaniel Hillconfig BCACHEFS_LOCK_TIME_STATS
69c807ca95SDaniel Hill       bool "bcachefs lock time statistics"
70c807ca95SDaniel Hill       depends on BCACHEFS_FS
71c807ca95SDaniel Hill       help
72c807ca95SDaniel Hill       Expose statistics for how long we held a lock in debugfs
73c807ca95SDaniel Hill
741c6fdbd8SKent Overstreetconfig BCACHEFS_NO_LATENCY_ACCT
751c6fdbd8SKent Overstreet	bool "disable latency accounting and time stats"
761c6fdbd8SKent Overstreet	depends on BCACHEFS_FS
771c6fdbd8SKent Overstreet	help
781c6fdbd8SKent Overstreet	This disables device latency tracking and time stats, only for performance testing
7992095781SDaniel Hill
8001117332SKent Overstreetconfig BCACHEFS_SIX_OPTIMISTIC_SPIN
8101117332SKent Overstreet	bool "Optimistic spinning for six locks"
8201117332SKent Overstreet	depends on BCACHEFS_FS
8301117332SKent Overstreet	depends on SMP
8401117332SKent Overstreet	default y
8501117332SKent Overstreet	help
8601117332SKent Overstreet	Instead of immediately sleeping when attempting to take a six lock that
8701117332SKent Overstreet	is held by another thread, spin for a short while, as long as the
8801117332SKent Overstreet	thread owning the lock is running.
8901117332SKent Overstreet
90*32ed4a62SKent Overstreetconfig BCACHEFS_PATH_TRACEPOINTS
91*32ed4a62SKent Overstreet	bool "Extra btree_path tracepoints"
92*32ed4a62SKent Overstreet	depends on BCACHEFS_FS
93*32ed4a62SKent Overstreet	help
94*32ed4a62SKent Overstreet	Enable extra tracepoints for debugging btree_path operations; we don't
95*32ed4a62SKent Overstreet	normally want these enabled because they happen at very high rates.
96*32ed4a62SKent Overstreet
9792095781SDaniel Hillconfig MEAN_AND_VARIANCE_UNIT_TEST
9892095781SDaniel Hill	tristate "mean_and_variance unit tests" if !KUNIT_ALL_TESTS
9992095781SDaniel Hill	depends on KUNIT
1004db8ac86SKent Overstreet	depends on BCACHEFS_FS
10192095781SDaniel Hill	default KUNIT_ALL_TESTS
10292095781SDaniel Hill	help
10392095781SDaniel Hill	  This option enables the kunit tests for mean_and_variance module.
10492095781SDaniel Hill	  If unsure, say N.
105