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@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxx