Skip to content

Commit 1c219ae

Browse files
committed
btrfs-progs: docs: update status page and features
Signed-off-by: David Sterba <[email protected]>
1 parent bc7c17c commit 1c219ae

File tree

2 files changed

+70
-8
lines changed

2 files changed

+70
-8
lines changed

Diff for: Documentation/Interoperability.rst

+7
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,18 @@ for overlayfs (supporting the rename modes of *exchange* and *whiteout*).
6666
SELinux
6767
-------
6868

69+
The SELinux labels can be defined via mount option *context* and since
70+
version 6.8 there are no limitations. Until that version some cases
71+
were not supported.
72+
6973
.. _interop-io-uring:
7074

7175
io_uring
7276
--------
7377

78+
Basic file operations are supported. Since 6.12 the *Encoded IO read/write ioctls* the
79+
*read* is supported and write since 6.13.
80+
7481
.. _interop-nfs:
7582

7683
NFS

Diff for: Documentation/Status.rst

+63-8
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,21 @@ Status
44
Overview
55
--------
66

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`.
89

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.
1314
Combination of features can vary in performance, the table does not
1415
cover all possibilities.
1516

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>`.
1722

1823
The columns for each feature reflect the status of the implementation
1924
in following ways:
@@ -107,6 +112,10 @@ in following ways:
107112
- :statusok:`OK`
108113
- OK
109114
- 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.
110119
* - :doc:`Send<Send-receive>`
111120
- :statusok:`OK`
112121
- OK
@@ -147,6 +156,11 @@ in following ways:
147156
- :statusok:`OK`
148157
- OK
149158
-
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.
150164
* - :doc:`Subpage block size<Subpage>`
151165
- :statusok:`OK`
152166
- OK
@@ -241,7 +255,8 @@ converted later).
241255
* - :ref:`Raid stripe tree<mkfs-feature-raid-stripe-tree>`
242256
- :statusmok:`mostly OK`
243257
- 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
245260
* - :doc:`Squota<Qgroups>`
246261
- :statusok:`OK`
247262
- OK
@@ -271,7 +286,7 @@ Integration with other Linux features or external systems.
271286
* - :ref:`io_uring<interop-io-uring>`
272287
- :statusok:`OK`
273288
- OK
274-
-
289+
- Can be combined with *Encoded read/write ioctls*.
275290
* - :ref:`fsverity<interop-fsverity>`
276291
- :statusok:`OK`
277292
- OK
@@ -456,3 +471,43 @@ Newly introduced features build on top of the above and could add
456471
specific structures. If a backward compatibility is not possible to
457472
maintain, a bit in the filesystem superblock denotes that and the level
458473
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

Comments
 (0)