linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: progs integration branch moved to master (new default leafsize)
@ 2013-11-14 17:28 Chris Mason
  0 siblings, 0 replies; 11+ messages in thread
From: Chris Mason @ 2013-11-14 17:28 UTC (permalink / raw)
  To: dsterba, David Sterba; +Cc: linux-btrfs@vger.kernel.org, Eric Sandeen

Quoting David Sterba (2013-11-14 07:41:21)
> On Fri, Nov 08, 2013 at 05:01:35PM -0500, Chris Mason wrote:
> > The patch below switches our default mkfs leafsize up to 16K.  This
> > should be a better choice in almost every workload, but now is your
> > chance to complain if it causes trouble.
> 
> We should also turn the extended refs on by default now, it's been
> around since 3.7, I'm not expecting backward compatibility issues in
> general.

[ Sorry for the empty reply on the patch itself, fat fingered the quit
when I decided to reply here instead ]

This is pushed out now, thanks Dave!

-chris


^ permalink raw reply	[flat|nested] 11+ messages in thread
* progs integration branch moved to master (new default leafsize)
@ 2013-11-08 22:01 Chris Mason
  2013-11-08 23:53 ` Martin
  2013-11-14 12:41 ` David Sterba
  0 siblings, 2 replies; 11+ messages in thread
From: Chris Mason @ 2013-11-08 22:01 UTC (permalink / raw)
  To: linux-btrfs@vger.kernel.org, David Sterba, Eric Sandeen

Hi everyone,

This patch is now the tip of the master branch for btrfs-progs, which
has been updated to include most of the backlogged progs patches.
Please take a look and give it a shake.  This was based on Dave's
integration tree (many thanks Dave!) minus the patches for online dedup.
I've pulled in the coverity fixes and a few others from the list as
well.

The patch below switches our default mkfs leafsize up to 16K.  This
should be a better choice in almost every workload, but now is your
chance to complain if it causes trouble.

--------------------------------
16KB is faster and leads to less metadata fragmentation in almost all
workloads.  It does slightly increase lock contention on the root nodes
in some workloads, but that is best dealt with by adding more subvolumes
(for now).

This uses 16KB or the page size, whichever is bigger.  If you're doing a
mixed block group mkfs, it uses the sectorsize instead.

Since the kernel refuses to mount a mixed block group FS where the
metadata leaf size doesn't match the data sectorsize, this also adds a
similar check during mkfs.

Signed-off-by: Chris Mason <chris.mason@fusionio.com>
---
 mkfs.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/mkfs.c b/mkfs.c
index bf8a831..cd0af9e 100644
--- a/mkfs.c
+++ b/mkfs.c
@@ -46,6 +46,8 @@
 
 static u64 index_cnt = 2;
 
+#define DEFAULT_MKFS_LEAF_SIZE 16384
+
 struct directory_name_entry {
 	char *dir_name;
 	char *path;
@@ -1222,7 +1224,7 @@ int main(int ac, char **av)
 	u64 alloc_start = 0;
 	u64 metadata_profile = 0;
 	u64 data_profile = 0;
-	u32 leafsize = sysconf(_SC_PAGESIZE);
+	u32 leafsize = max_t(u32, sysconf(_SC_PAGESIZE), DEFAULT_MKFS_LEAF_SIZE);
 	u32 sectorsize = 4096;
 	u32 nodesize = leafsize;
 	u32 stripesize = 4096;
@@ -1232,6 +1234,7 @@ int main(int ac, char **av)
 	int ret;
 	int i;
 	int mixed = 0;
+	int leaf_forced = 0;
 	int data_profile_opt = 0;
 	int metadata_profile_opt = 0;
 	int discard = 1;
@@ -1269,6 +1272,7 @@ int main(int ac, char **av)
 			case 'n':
 				nodesize = parse_size(optarg);
 				leafsize = parse_size(optarg);
+				leaf_forced = 1;
 				break;
 			case 'L':
 				label = parse_label(optarg);
@@ -1386,8 +1390,21 @@ int main(int ac, char **av)
 				BTRFS_BLOCK_GROUP_RAID0 : 0; /* raid0 or single */
 		}
 	} else {
+		u32 best_leafsize = max_t(u32, sysconf(_SC_PAGESIZE), sectorsize);
 		metadata_profile = 0;
 		data_profile = 0;
+
+		if (!leaf_forced) {
+			leafsize = best_leafsize;
+			nodesize = best_leafsize;
+			if (check_leaf_or_node_size(leafsize, sectorsize))
+				exit(1);
+		}
+		if (leafsize != sectorsize) {
+			fprintf(stderr, "Error: mixed metadata/data block groups "
+				"require metadata blocksizes equal to the sectorsize\n");
+			exit(1);
+		}
 	}
 
 	ret = test_num_disk_vs_raid(metadata_profile, data_profile,
-- 
1.8.2


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2013-11-23  0:03 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-14 17:28 progs integration branch moved to master (new default leafsize) Chris Mason
  -- strict thread matches above, loose matches on Subject: below --
2013-11-08 22:01 Chris Mason
2013-11-08 23:53 ` Martin
2013-11-21 23:37   ` Chris Mason
2013-11-22  9:03     ` Martin
2013-11-22 13:40       ` Chris Mason
2013-11-22 19:50         ` Martin
2013-11-22 19:57           ` Chris Mason
2013-11-23  0:02             ` Martin
2013-11-22 22:05         ` Duncan
2013-11-14 12:41 ` David Sterba

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).