Re: [RFC] xfs: reduce sub-block DIO serialisation

Dave Chinner
2021-01-17T21:37:21Z

On Fri, Jan 15, 2021 at 03:45:14PM -0300, Raphael Carvalho wrote:
> On Tue, Jan 12, 2021 at 7:46 AM Dave Chinner <david@fromorbit.com> wrote:
>
> > Hi folks,
> >
> > This is the XFS implementation on the sub-block DIO optimisations
> > for written extents that I've mentioned on #xfs and a couple of
> > times now on the XFS mailing list.
> >
> > It takes the approach of using the IOMAP_NOWAIT non-blocking
> > IO submission infrastructure to optimistically dispatch sub-block
> > DIO without exclusive locking. If the extent mapping callback
> > decides that it can't do the unaligned IO without extent
> > manipulation, sub-block zeroing, blocking or splitting the IO into
> > multiple parts, it aborts the IO with -EAGAIN. This allows the high
> > level filesystem code to then take exclusive locks and resubmit the
> > IO once it has guaranteed no other IO is in progress on the inode
> > (the current implementation).
> >
>
> I like this optimistic approach very much. One question though: If
> application submits IO with RWF_NOWAIT, then this fallback step will be
> avoided and application will receive EAGAIN, right?

Yes, all the proposed patches do this correctly.

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com