[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Mon, 04 Apr 2011 15:11:52 -0400
From: Eric Sandeen <sandeen@...hat.com>
To: ext4 development <linux-ext4@...r.kernel.org>
CC: Zeev Tarantov <zeev.tarantov@...il.com>
Subject: [PATCH] e2fsprogs: don't set stripe/stride to 1 block in mkfs
Block devices may set minimum or optimal IO hints equal to
blocksize; in this case there is really nothing for ext4
to do with this information (i.e. search for a block-aligned
allocation?) so don't set fs geometry with single-block
values.
Zeev also reported that with a block-sized stripe, the
ext4 allocator spends time spinning in ext4_mb_scan_aligned(),
oddly enough.
Reported-by: Zeev Tarantov <zeev.tarantov@...il.com>
Signed-off-by: Eric Sandeen <sandeen@...hat.com>
---
diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index 9798b88..74b838c 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -1135,8 +1135,11 @@ static int get_device_geometry(const char *file,
if ((opt_io == 0) && (psector_size > blocksize))
opt_io = psector_size;
- fs_param->s_raid_stride = min_io / blocksize;
- fs_param->s_raid_stripe_width = opt_io / blocksize;
+ /* setting stripe/stride to blocksize is pointless */
+ if (min_io > blocksize)
+ fs_param->s_raid_stride = min_io / blocksize;
+ if (opt_io > blocksize)
+ fs_param->s_raid_stripe_width = opt_io / blocksize;
rc = blkid_topology_get_alignment_offset(tp);
out:
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists