All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH] btrfs-progs: doc: add more explanation on subapge limits
Date: Wed, 18 May 2022 13:37:50 +0800	[thread overview]
Message-ID: <6c11754df4341351769a0da4eaac8939aa82b700.1652852267.git.wqu@suse.com> (raw)

The current subpage support in v5.18 has several limits, the most
obvious ones are:

- Only support 64KiB page size
- No RAID56 support

The supports are already queued for v5.19.

And some minor ones:

- No inline extent write support
  Read is always supported.
  Subpage mount will always just act as "max_inline=0".

- Compression write is only for page aligned range.
  Read is always supported, no matter the alignment.

- Extra memory usage for scrub
  Patchset is hanging there for a while though.

Signed-off-by: Qu Wenruo <wqu@suse.com>
---
 Documentation/Subpage.rst | 59 +++++++++++++++++++++++++++++++++++++--
 1 file changed, 56 insertions(+), 3 deletions(-)

diff --git a/Documentation/Subpage.rst b/Documentation/Subpage.rst
index 0aadf3c00b98..1f56b35f2e04 100644
--- a/Documentation/Subpage.rst
+++ b/Documentation/Subpage.rst
@@ -6,6 +6,59 @@ 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
-pages, like 64KiB on 64bit ARM or PowerPC. A filesystem created on one cannot
-be mounted on the other.  The subpage support is still work in progress in 5.18
-but the support is incrementally added with each release.
+pages, like 64KiB on 64bit ARM or PowerPC.  This means filesystems created
+with 64KiB sector size can not be mounted on system with 4KiB page size.
+
+While with subpage support, systems with 64KiB page size can create (still needs
+"-s 4k" option for mkfs.btrfs) and mount filesystems with 4KiB sectorsize,
+allowing us to push 4KiB sectorsize as default sectorsize for all platforms in the
+near-future.
+
+
+Requirements, limitations
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The subpage support is initially added in v5.15, although it's still
+considered as experimental at the time of writing (v5.18), most features are
+already working without problems.
+
+End users can mount filesystems with 4KiB sectorsize and do their usual
+workload, while should not notice any obvious change, as long as the initial
+mount succeeded (there are cases btrfs will reject the subpage mount though).
+
+The following features has some limitations for subpage:
+
+- RAID56 support
+  This support is already queued for v5.19 cycle.
+  Any fs with RAID56 chunks will be rejected at mount time for now.
+
+- Support for page size other than 64KiB
+  The support for other page sizes (16KiB, 32KiB and more) are already queued
+  for v5.19 cycle.
+  Initially the subpage support is only for 64KiB support, but the design makes
+  it pretty easy to enable support for other page sizes.
+
+- No inline extent creation
+  This is an artificial limit, to prevent mixed inline and regular extents.
+
+  It's possible to create mixed inline and regular extents even with
+  non-subpage mount for certain corner cases, it's way easier to create such
+  mixed extents for subpage.
+
+  Thus max_inline mount option will be sliently ignored for subpage mounts,
+  and it always acts as "max_inline=0".
+
+- Compression write is limited to page aligned ranges
+  Compression write for subpage is introduced in v5.16, with the limitation
+  that only page aligned range can be compressed.
+  This limitation is due to how btrfs handles delayed allocation.
+
+- No support for v1 space cache
+  V1 space cache is considered deprecated, and we're defaulting to v2 cache
+  in btrfs-progs already.
+  The old v1 cache has quite some hard coded page size usage, and consider it
+  is already deprecated, we force v2 cache for subpage.
+
+- Slightly higher memory usage for scrub
+  This is due to how we allocate pages for scrub, and will be fixed in the coming
+  releases soon.
-- 
2.36.1


             reply	other threads:[~2022-05-18  5:38 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-18  5:37 Qu Wenruo [this message]
2022-05-18 11:39 ` [PATCH] btrfs-progs: doc: add more explanation on subapge limits David Sterba

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6c11754df4341351769a0da4eaac8939aa82b700.1652852267.git.wqu@suse.com \
    --to=wqu@suse.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.