From: David Sterba <dsterba@suse.com>
To: stable@vger.kernel.org
Subject: [PATCH 04/17] btrfs: change max_inline default to 2048
Date: Thu, 5 May 2016 11:43:48 +0200 [thread overview]
Message-ID: <1462441428-2611-1-git-send-email-dsterba@suse.com> (raw)
In-Reply-To: <20160505094018.GA29353@twin.jikos.cz>
The current practical default is ~4k on x86_64 (the logic is more complex,
simplified for brevity), the inlined files land in the metadata group and
thus consume space that could be needed for the real metadata.
The inlining brings some usability surprises:
1) total space consumption measured on various filesystems and btrfs
with DUP metadata was quite visible because of the duplicated data
within metadata
2) inlined data may exhaust the metadata, which are more precious in case
the entire device space is allocated to chunks (ie. balance cannot
make the space more compact)
3) performance suffers a bit as the inlined blocks are duplicate and
stored far away on the device.
Proposed fix: set the default to 2048
This fixes namely 1), the total filesysystem space consumption will be on
par with other filesystems.
Partially fixes 2), more data are pushed to the data block groups.
The characteristics of 3) are based on actual small file size
distribution.
The change is independent of the metadata blockgroup type (though it's
most visible with DUP) or system page size as these parameters are not
trival to find out, compared to file size.
Signed-off-by: David Sterba <dsterba@suse.com>
---
fs/btrfs/ctree.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index bfe4a337fb4d..6661ad8b4088 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -2252,7 +2252,7 @@ struct btrfs_ioctl_defrag_range_args {
#define BTRFS_MOUNT_FREE_SPACE_TREE (1 << 26)
#define BTRFS_DEFAULT_COMMIT_INTERVAL (30)
-#define BTRFS_DEFAULT_MAX_INLINE (8192)
+#define BTRFS_DEFAULT_MAX_INLINE (2048)
#define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt)
#define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt)
--
2.7.1
next prev parent reply other threads:[~2016-05-05 9:44 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-05 9:40 Btrfs stable fixes for 4.5.x David Sterba
2016-05-05 9:43 ` [PATCH 01/17] btrfs: reada: Fix in-segment calculation for reada David Sterba
2016-05-05 12:37 ` Greg KH
2016-05-05 9:43 ` [PATCH 02/17] Btrfs: fix truncate_space_check David Sterba
2016-05-05 9:43 ` [PATCH 03/17] btrfs: remove error message from search ioctl for nonexistent tree David Sterba
2016-05-05 9:43 ` David Sterba [this message]
2016-05-05 9:43 ` [PATCH 05/17] Btrfs: fix unreplayable log after snapshot delete + parent dir fsync David Sterba
2016-05-05 9:43 ` [PATCH 06/17] Btrfs: fix file loss on log replay after renaming a file and fsync David Sterba
2016-05-05 9:43 ` [PATCH 07/17] Btrfs: fix extent_same allowing destination offset beyond i_size David Sterba
2016-05-05 9:44 ` [PATCH 08/17] Btrfs: fix deadlock between direct IO reads and buffered writes David Sterba
2016-05-05 9:44 ` [PATCH 09/17] Btrfs: fix race when checking if we can skip fsync'ing an inode David Sterba
2016-05-05 9:44 ` [PATCH 10/17] Btrfs: do not collect ordered extents when logging that inode exists David Sterba
2016-05-05 9:44 ` [PATCH 11/17] btrfs: csum_tree_block: return proper errno value David Sterba
2016-05-05 9:44 ` [PATCH 12/17] btrfs: do not write corrupted metadata blocks to disk David Sterba
2016-05-05 9:44 ` [PATCH 13/17] Btrfs: fix invalid reference in replace_path David Sterba
2016-05-05 9:44 ` [PATCH 14/17] btrfs: handle non-fatal errors in btrfs_qgroup_inherit() David Sterba
2016-05-05 9:44 ` [PATCH 15/17] btrfs: fallback to vmalloc in btrfs_compare_tree David Sterba
2016-05-05 9:44 ` [PATCH 16/17] Btrfs: don't use src fd for printk David Sterba
2016-05-05 9:44 ` [PATCH 17/17] btrfs: Reset IO error counters before start of device replacing David Sterba
-- strict thread matches above, loose matches on Subject: below --
2016-05-11 12:45 Btrfs stable fixes for 4.5.x (with added commit references) David Sterba
2016-05-11 12:47 ` [PATCH 04/17] btrfs: change max_inline default to 2048 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=1462441428-2611-1-git-send-email-dsterba@suse.com \
--to=dsterba@suse.com \
--cc=stable@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox