On Wed, Oct 09, 2013 at 09:56:28PM -0500, Eric Sandeen wrote: > Pretty sure all DIO IO fails in fsstress today since XFS_IOC_DIOINFO > fails. If so, rather than just bailing out on the op, assign > some sane default DIO parameters, getting min IO size from > sector size if possible. > > Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxxx> > --- > > V2: factor out get_alignment, use BLKSSZGET for min DIO size > rather than guessing at 512. > > > diff --git a/ltp/fsstress.c b/ltp/fsstress.c > index 5d5611f..af06059 100644 > --- a/ltp/fsstress.c > +++ b/ltp/fsstress.c > @@ -550,6 +550,27 @@ int main(int argc, char **argv) > return 0; > } > > +/* > + * Get alignment via XFS_IOC_DIOINFO, else fall back to > + * best guess from BLKSSZGET, else return -1. > + */ > +static int > +get_alignment(pathname_t *f, int fd, struct dioattr *dio) > +{ > + if (xfsctl(f->path, fd, XFS_IOC_DIOINFO, dio) < 0) { > + int sectorsize; > + > + if (ioctl(fd, BLKSSZGET, §orsize) < 0) > + return -1; > + > + dio->d_maxiosz = -1U; > + dio->d_miniosz = sectorsize; > + dio->d_mem = sectorsize; To be safe, shouldn't we align d_mem to page size given it is the alignment of the data within the user page, not the alignment of the offset of the IO? Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs