On 8/29/17 11:18 PM, Donald Douwsma wrote: > When sunit and swidth are used mkfs.xfs tries to avoid all allocation > groups aligning on the same stripe and will attempt to stagger them > across the stripes that make up swidth. If there is only one stripe > then there is no benefit in this optimisation. > > $ truncate -s10G xfs_10G_su256k_sw1.image > $ mkfs.xfs -d su=256k,sw=1 xfs_10G_su256k_sw1.image > meta-data=xfs_10G_su256k_sw1.image isize=512 agcount=16, agsize=163776 blks > = sectsz=512 attr=2, projid32bit=1 > = crc=1 finobt=0, sparse=0 > data = bsize=4096 blocks=2620416, imaxpct=25 > = sunit=64 swidth=64 blks > naming =version 2 bsize=4096 ascii-ci=0 ftype=1 > log =internal log bsize=4096 blocks=2560, version=2 > = sectsz=512 sunit=64 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 > > A side effect of the optimisation is that the size adjustment used to stager > the allocation groups causes the last sunit of storage to be unused. > > $ echo $((2620416*4096)) > 10733223936 > $ ls -l xfs_10G_su256k_sw1.image > -rw-rw-r--. 1 test test 10737418240 Aug 30 10:54 xfs_10G_su256k_sw1.image > > Skip this optimisation when sunit == swidth. > > Signed-off-by: Donald Douwsma <ddouwsma@xxxxxxxxxx> Interesting. Yeah, I suppose this makes sense, though I'm surprised anyone would notice. :) Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx> Thanks, -Eric > --- > mkfs/xfs_mkfs.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c > index b5c3a57..35dae48 100644 > --- a/mkfs/xfs_mkfs.c > +++ b/mkfs/xfs_mkfs.c > @@ -2534,7 +2534,9 @@ reported by the device (%u).\n"), > } > } > } > - if (dswidth && ((agsize % dswidth) == 0) && (agcount > 1)) { > + if (dswidth && ((agsize % dswidth) == 0) > + && (dswidth != dsunit) > + && (agcount > 1)) { > /* This is a non-optimal configuration because all AGs > * start on the same disk in the stripe. Changing > * the AG size by one sunit will guarantee that this > -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html