2022-05-13 16:54:14 +00:00
|
|
|
Subpage support
|
|
|
|
===============
|
|
|
|
|
|
|
|
Subpage block size support, or just *subpage* for short, is a feature to allow
|
|
|
|
using a filesystem that has different size of data block size (*sectorsize*)
|
|
|
|
and the host CPU page size. For easier implementation the support was limited
|
|
|
|
to the exactly same size of the block and page. On x86_64 this is typically
|
|
|
|
4KiB, but there are other architectures commonly used that make use of larger
|
2024-01-18 01:37:08 +00:00
|
|
|
pages, like 64KiB on 64bit ARM or PowerPC or 16KiB on Apple Silicon. This means
|
|
|
|
filesystems created with 64KiB sector size cannot be mounted on a system with
|
|
|
|
4KiB page size.
|
2022-05-18 05:37:50 +00:00
|
|
|
|
2024-01-18 01:37:08 +00:00
|
|
|
Since btrfs-progs 6.7, filesystems are created with a 4KiB sector size by
|
|
|
|
default, though it remains possible to create filesystems with other sector sizes
|
2023-11-16 16:02:24 +00:00
|
|
|
(such as 64KiB with the "-s 64k" option for :command:`mkfs.btrfs`). This
|
2024-01-18 01:37:08 +00:00
|
|
|
ensures that new filesystems are compatible across other architecture variants
|
|
|
|
using larger page sizes.
|
2022-05-18 05:37:50 +00:00
|
|
|
|
|
|
|
Requirements, limitations
|
2022-05-20 21:59:40 +00:00
|
|
|
-------------------------
|
2022-05-18 05:37:50 +00:00
|
|
|
|
2024-01-18 01:37:08 +00:00
|
|
|
The initial subpage support has been added in kernel 5.15. Most features are
|
2023-11-16 16:02:24 +00:00
|
|
|
already working without problems. On a 64KiB page system, a filesystem with
|
|
|
|
4KiB sectorsize can be mounted and used as long as the initial mount succeeds.
|
2024-01-18 01:37:08 +00:00
|
|
|
Subpage support is used by default for systems with a non-4KiB page size since
|
|
|
|
btrfs-progs 6.7.
|
2022-05-18 05:37:50 +00:00
|
|
|
|
2023-08-23 15:58:06 +00:00
|
|
|
Please refer to status page of :ref:`status-subpage-block-size` for
|
|
|
|
compatibility.
|