From: Neal Gompa <neal@gompa.dev>
To: Linux BTRFS Development <linux-btrfs@vger.kernel.org>
Cc: Neal Gompa <neal@gompa.dev>, Anand Jain <anand.jain@oracle.com>,
Qu Wenruo <quwenruo.btrfs@gmx.com>, Qu Wenruo <wqu@suse.com>,
David Sterba <dsterba@suse.cz>, Hector Martin <marcan@marcan.st>,
Sven Peter <sven@svenpeter.dev>,
Davide Cavalca <davide@cavalca.name>, Jens Axboe <axboe@fb.com>,
Asahi Lina <lina@asahilina.net>,
Asahi Linux <asahi@lists.linux.dev>,
Josef Bacik <josef@toxicpanda.com>
Subject: [PATCH v3] btrfs-progs: mkfs: Enforce 4k sectorsize by default
Date: Thu, 16 Nov 2023 09:50:59 -0500 [thread overview]
Message-ID: <20231116145933.2707486-2-neal@gompa.dev> (raw)
In-Reply-To: <20231116145933.2707486-1-neal@gompa.dev>
We have had working subpage support in Btrfs for many cycles now.
Generally, we do not want people creating filesystems by default
with non-4k sectorsizes since it creates portability problems.
Signed-off-by: Neal Gompa <neal@gompa.dev>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
---
Documentation/Subpage.rst | 17 +++++++++--------
Documentation/mkfs.btrfs.rst | 13 +++++++++----
mkfs/main.c | 2 +-
3 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/Documentation/Subpage.rst b/Documentation/Subpage.rst
index c762b6a3..1655ae7e 100644
--- a/Documentation/Subpage.rst
+++ b/Documentation/Subpage.rst
@@ -9,18 +9,19 @@ to the exactly same size of the block and page. On x86_64 this is typically
pages, like 64KiB on 64bit ARM or PowerPC. This means filesystems created
with 64KiB sector size cannot be mounted on a system with 4KiB page size.
-While with subpage support systems with 64KiB page size can create
-and mount filesystems with 4KiB sectorsize. This still needs to use option "-s
-4k" option for :command:`mkfs.btrfs`.
+Since v6.7, filesystems are created with a 4KiB sectorsize by default,
+though it remains possible to create filesystems with other page sizes
+(such as 64KiB with the "-s 64k" option for :command:`mkfs.btrfs`). This
+ensures that new filesystems are compatible across other architecture
+variants using larger page sizes.
Requirements, limitations
-------------------------
-The initial subpage support has been added in v5.15, although it's still
-considered as experimental, most features are already working without problems.
-On a 64KiB page system filesystem with 4KiB sectorsize can be mounted and used
-as usual as long as the initial mount succeeds. There are cases a mount will be
-rejected when verifying compatible features.
+The initial subpage support has been added in v5.15. Most features are
+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.
+Subpage support is used by default for systems with a non-4KiB page size since v6.7.
Please refer to status page of :ref:`status-subpage-block-size` for
compatibility.
diff --git a/Documentation/mkfs.btrfs.rst b/Documentation/mkfs.btrfs.rst
index 7e23b9f6..be4f49cb 100644
--- a/Documentation/mkfs.btrfs.rst
+++ b/Documentation/mkfs.btrfs.rst
@@ -122,10 +122,15 @@ OPTIONS
-s|--sectorsize <size>
Specify the sectorsize, the minimum data block allocation unit.
- The default value is the page size and is autodetected. If the sectorsize
- differs from the page size, the created filesystem may not be mountable by the
- running kernel. Therefore it is not recommended to use this option unless you
- are going to mount it on a system with the appropriate page size.
+ By default, the value is 4KiB, but it can be manually set to match the
+ system page size. However, if the sector size is different from the page
+ size, the resulting filesystem may not be mountable by the current
+ kernel, apart from the default 4KiB. Hence, using this option is not
+ advised unless you intend to mount it on a system with the suitable
+ page size.
+
+ .. note::
+ Versions prior to 6.7 set the sectorsize matching to the page size.
-L|--label <string>
Specify a label for the filesystem. The *string* should be less than 256
diff --git a/mkfs/main.c b/mkfs/main.c
index d984c995..0570c8f8 100644
--- a/mkfs/main.c
+++ b/mkfs/main.c
@@ -1384,7 +1384,7 @@ int BOX_MAIN(mkfs)(int argc, char **argv)
}
if (!sectorsize)
- sectorsize = (u32)sysconf(_SC_PAGESIZE);
+ sectorsize = (u32)SZ_4K;
if (btrfs_check_sectorsize(sectorsize))
goto error;
--
2.41.0
prev parent reply other threads:[~2023-11-16 14:59 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-16 14:50 [PATCH v3 0/1] Enforce 4k sectorize by default for mkfs Neal Gompa
2023-11-16 14:50 ` Neal Gompa [this message]
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=20231116145933.2707486-2-neal@gompa.dev \
--to=neal@gompa.dev \
--cc=anand.jain@oracle.com \
--cc=asahi@lists.linux.dev \
--cc=axboe@fb.com \
--cc=davide@cavalca.name \
--cc=dsterba@suse.cz \
--cc=josef@toxicpanda.com \
--cc=lina@asahilina.net \
--cc=linux-btrfs@vger.kernel.org \
--cc=marcan@marcan.st \
--cc=quwenruo.btrfs@gmx.com \
--cc=sven@svenpeter.dev \
--cc=wqu@suse.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox