On Thu, Jul 12, 2012 at 10:51:12AM -0600, Andreas Dilger wrote: > On 2012-07-12, at 8:49 AM, Eric Sandeen wrote: > > On 7/12/12 1:48 AM, Zheng Liu wrote: > >> From: Zheng Liu <wenqing.lz@xxxxxxxxxx> > >> > >> Currently in ext4 the length of zero-out chunk is set to 7. But it is > >> too short so that it will cause a lot of fragmentation of extent when > >> we use fallocate to preallocate some uninitialized extents and the > >> workload frequently does some uninitialized extent conversions. Thus, > >> now we set it to 256 (1MB chunk), and put it into super block in order > >> to adjust it dynamically in sysfs. > > > > Does this in fact help the workload for which you wanted the non-flagged > > fallocate interface? > > > > I'm a little wary of adding another user tunable; how will the user have > > any idea what value to use here? > > It would make sense to use the s_raid_stripe_width as the default value for > this parameter. The other thing we need to pay attention to is that the > growth of the extent zeroing be done on a RAID or erase-block aligned manner. > Otherwise, this might cause extra IO that doesn't benefit the application. There is a problem that we use the s_raid_stripe_width as the default value, which is that this value will be 0 when we simply use mkfs.ext4 without '-E stripe-width=XXX'. when this value is 0, we still need to choose a number as the default value. So I think that we can choose 256 when the s_raid_stripe_width is 0. Regards, Zheng > It appears that the current code does not pay attention to alignment, and > that should be fixed before landing this patch with larger zero-out sizes. -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html