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