|
4 | 4 | Overview
|
5 | 5 | --------
|
6 | 6 |
|
7 |
| -For a list of features by their introduction, please see :doc:`/Feature-by-version`. |
| 7 | +For a list of features by the kernel version of their introduction, please see |
| 8 | +:doc:`/Feature-by-version`. |
8 | 9 |
|
9 |
| -The table below aims to serve as an overview for the stability status of |
10 |
| -the features BTRFS supports. While a feature may be functionally safe |
11 |
| -and reliable, it does not necessarily mean that its useful, for example |
12 |
| -in meeting your performance expectations for your specific workload. |
| 10 | +The table below is an overview of the stability status of |
| 11 | +the features that BTRFS supports. While a feature may be functionally safe |
| 12 | +and reliable, it does not necessarily mean that it is meeting |
| 13 | +suitable for all use cases or workloads, for example performance. |
13 | 14 | Combination of features can vary in performance, the table does not
|
14 | 15 | cover all possibilities.
|
15 | 16 |
|
16 |
| -**The table is based on the latest released linux kernel: 6.11** |
| 17 | +**The table is based on the latest released linux kernel: 6.13** |
| 18 | + |
| 19 | +Since kernel version 6.12 there's a config option *CONFIG_BTRFS_EXPERIMENTAL* |
| 20 | +that enables features that are in development and do not have stabilized |
| 21 | +interface or have known problems. See the :ref:`list below<status-experimental-features>`. |
17 | 22 |
|
18 | 23 | The columns for each feature reflect the status of the implementation
|
19 | 24 | in following ways:
|
@@ -107,6 +112,10 @@ in following ways:
|
107 | 112 | - :statusok:`OK`
|
108 | 113 | - OK
|
109 | 114 | - balance + qgroups can be slow when there are many snapshots
|
| 115 | + * - Dynamic block group reclaim |
| 116 | + - TBD |
| 117 | + - TBD |
| 118 | + - Tunable thresholds for automatic background block group reclaim. |
110 | 119 | * - :doc:`Send<Send-receive>`
|
111 | 120 | - :statusok:`OK`
|
112 | 121 | - OK
|
@@ -147,6 +156,11 @@ in following ways:
|
147 | 156 | - :statusok:`OK`
|
148 | 157 | - OK
|
149 | 158 | -
|
| 159 | + * - Encoded io read/write |
| 160 | + - :statusok:`OK` |
| 161 | + - OK |
| 162 | + - Special *ioctls* to read or write file extent data directly, the raw |
| 163 | + compressed bytes in particular. |
150 | 164 | * - :doc:`Subpage block size<Subpage>`
|
151 | 165 | - :statusok:`OK`
|
152 | 166 | - OK
|
@@ -241,7 +255,8 @@ converted later).
|
241 | 255 | * - :ref:`Raid stripe tree<mkfs-feature-raid-stripe-tree>`
|
242 | 256 | - :statusmok:`mostly OK`
|
243 | 257 | - OK
|
244 |
| - - not all profiles are supported and RST is behind CONFIG_BTRFS_DEBUG build option |
| 258 | + - not all profiles are supported and RST is behind |
| 259 | + CONFIG_BTRFS_DEBUG/CONFIG_BTRFS_EXPERIMENTAL build option |
245 | 260 | * - :doc:`Squota<Qgroups>`
|
246 | 261 | - :statusok:`OK`
|
247 | 262 | - OK
|
@@ -271,7 +286,7 @@ Integration with other Linux features or external systems.
|
271 | 286 | * - :ref:`io_uring<interop-io-uring>`
|
272 | 287 | - :statusok:`OK`
|
273 | 288 | - OK
|
274 |
| - - |
| 289 | + - Can be combined with *Encoded read/write ioctls*. |
275 | 290 | * - :ref:`fsverity<interop-fsverity>`
|
276 | 291 | - :statusok:`OK`
|
277 | 292 | - OK
|
@@ -456,3 +471,43 @@ Newly introduced features build on top of the above and could add
|
456 | 471 | specific structures. If a backward compatibility is not possible to
|
457 | 472 | maintain, a bit in the filesystem superblock denotes that and the level
|
458 | 473 | of incompatibility (full, read-only mount possible).
|
| 474 | + |
| 475 | +.. _status-experimental-features: |
| 476 | + |
| 477 | +Experimental features |
| 478 | +--------------------- |
| 479 | + |
| 480 | +Until kernel 6.12 the *CONFIG_OPTION_DEBUG* was used to hide features that |
| 481 | +still need some work and should not be exposed to users in general. With |
| 482 | +the increasing number of such features or functionality this started to conflict |
| 483 | +with regular debugging features. Currently there the following is behind |
| 484 | +the experimental option. Use with caution and if you find problems or have |
| 485 | +feedback please report that to the mailing list. |
| 486 | + |
| 487 | +.. list-table:: |
| 488 | + :header-rows: 1 |
| 489 | + |
| 490 | + * - Feature |
| 491 | + - Version |
| 492 | + - Description |
| 493 | + * - Raid stripe tree |
| 494 | + - ... |
| 495 | + - The RIAD5/6 block group is still not implemented and on-disk format |
| 496 | + is not finalized (last change was in 6.12). |
| 497 | + * - Send stream protocol v3 |
| 498 | + - ... |
| 499 | + - The fs-verity stream command is implemented. More updates to the |
| 500 | + protocol specification are pending. |
| 501 | + * - Checksum offload mode |
| 502 | + - ... |
| 503 | + - Fast devices with a combination of block group profiles benefits from |
| 504 | + calculating checksums at the time of IO submission, while other |
| 505 | + combinations benefit from offloading that to the worker threads. |
| 506 | + A sysfs tunable is exported to switch that. |
| 507 | + * - Read balancing |
| 508 | + - 6.13 |
| 509 | + - Spread IO read requests across available devices. A tunable is provided |
| 510 | + in sysfs. |
| 511 | + * - Extent tree v2 |
| 512 | + - ... |
| 513 | + - Incomplete implementation. |
0 commit comments