On 10/24/14 10:08 PM, Stan Hoeppner wrote: > On 10/24/2014 05:27 PM, Eric Sandeen wrote: >> On 10/24/14 5:19 PM, Eric Sandeen wrote: >>> On 10/24/14 5:08 PM, Stan Hoeppner wrote: >>>> >>>> On 10/24/2014 03:14 PM, Eric Sandeen wrote: >>> >>> ... >>> >>>>>> Any ideas how to verify what's going on here and fix it? >>>>> >>>>> # blockdev --getiomin --getioopt /dev/s2d_a1l003 >> >> Also, what does it show for the underlying non-multipath device(s)? > > # blockdev --getiomin --getioopt /dev/sdj > 512 > 1048576 > # blockdev --getiomin --getioopt /dev/sdf > 512 > 1048576 Ok, so dm multipath is just bubbling up what the device itself is claiming; not dm's doing. I forgot to ask (and you forgot to report...!) what version of xfsprogs you're using.... Currently, blkid_get_topology() in xfsprogs does: /* * Blkid reports the information in terms of bytes, but we want it in * terms of 512 bytes blocks (just to convert it to bytes later..) * * If the reported values are the same as the physical sector size * do not bother to report anything. It will just cause warnings * if people specify larger stripe units or widths manually. */ val = blkid_topology_get_minimum_io_size(tp); if (val > *psectorsize) *sunit = val >> 9; val = blkid_topology_get_optimal_io_size(tp); if (val > *psectorsize) *swidth = val >> 9; so in your case sunit probably wouldn't get set (can you confirm with # blockdev --getpbsz that the physical sector size is also 512?) But the optimal size is > physical sector so swidth gets set. Bleah... can you just collect all of: # blockdev --getpbsz --getss --getiomin --getioopt for your underlying devices, and I'll dig into how xfsprogs is behaving for those values. I have a hunch that we should be ignoring stripe units of 512 even if the "width" claims to be something larger. -Eric _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs