[Cluster-devel] [PATCH] mkfs.gfs2: Don't use optimal_io_size when equal to minimum

Steven Whitehouse swhiteho at redhat.com
Wed May 27 08:53:46 UTC 2020


Hi,

On 27/05/2020 09:29, Andrew Price wrote:
> Some devices report an optimal_io_size of 512 instead of 0 when it's not
> larger than the minimum_io_size. Currently mkfs.gfs2 uses the non-zero
> value to choose the block size, which is almost certainly not what we
> want when it's 512. Update the suitability check for optimal_io_size to
> avoid using it when it's the same as minimum_io_size.  The effect is
> that we fall back to using the default block size, 4096.
>
> Resolves: rhbz#1839219
> Signed-off-by: Andrew Price <anprice at redhat.com>

What about for other sizes? We don't really want to select a block size 
to be anything other than 4k in most cases, even if the block device 
offers a lower minimum/optimal I/O size,

Steve.


> ---
>   gfs2/mkfs/main_mkfs.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gfs2/mkfs/main_mkfs.c b/gfs2/mkfs/main_mkfs.c
> index 846b341f..8b97f3d2 100644
> --- a/gfs2/mkfs/main_mkfs.c
> +++ b/gfs2/mkfs/main_mkfs.c
> @@ -505,7 +505,7 @@ static unsigned choose_blocksize(struct mkfs_opts *opts)
>   	}
>   	if (!opts->got_bsize && got_topol) {
>   		if (dev->optimal_io_size <= getpagesize() &&
> -		    dev->optimal_io_size >= dev->minimum_io_size)
> +		    dev->optimal_io_size > dev->minimum_io_size)
>   			bsize = dev->optimal_io_size;
>   		else if (dev->physical_sector_size <= getpagesize() &&
>   		         dev->physical_sector_size >= GFS2_DEFAULT_BSIZE)




More information about the Cluster-devel mailing list