Linux 6.13-rc4
[linux.git] / fs / bcachefs / Kconfig
blobab6c95b895b3359121a5736f0e9ebf28d60f0c97
2 config 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.
32 config BCACHEFS_QUOTA
33         bool "bcachefs quota support"
34         depends on BCACHEFS_FS
35         select QUOTACTL
37 config 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.
46         WARNING: this feature is still undergoing on disk format changes, and
47         should only be enabled for testing purposes.
49 config BCACHEFS_POSIX_ACL
50         bool "bcachefs POSIX ACL support"
51         depends on BCACHEFS_FS
52         select FS_POSIX_ACL
54 config BCACHEFS_DEBUG
55         bool "bcachefs debugging"
56         depends on BCACHEFS_FS
57         help
58         Enables many extra debugging checks and assertions.
60         The resulting code will be significantly slower than normal; you
61         probably shouldn't select this option unless you're a developer.
63 config 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
69 config 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
75 config 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
81 config 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.
91 config 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.
98 config 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.