mbox series

[PATCHSET,v6,0/8] Improve async iomap DIO performance

Message ID 20230724225511.599870-1-axboe@kernel.dk (mailing list archive)
Headers show
Series Improve async iomap DIO performance | expand

Message

Jens Axboe July 24, 2023, 10:55 p.m. UTC
Hi,

Hi,

This patchset improves async iomap DIO performance, for XFS and ext4.
For full details on this patchset, see the v4 posting:

https://lore.kernel.org/io-uring/20230720181310.71589-1-axboe@kernel.dk/

 fs/iomap/direct-io.c | 163 ++++++++++++++++++++++++++++++++-----------
 include/linux/fs.h   |  35 +++++++++-
 io_uring/rw.c        |  26 ++++++-
 3 files changed, 179 insertions(+), 45 deletions(-)

Can also be found here:

https://git.kernel.dk/cgit/linux/log/?h=xfs-async-dio.6

No change in performance since last time, and passes my testing without
complaints.

Changes in v6:
- Drop the polled patch, it's not needed anymore
- Change the "inline is safe" logic based on Dave's suggestions
- Gate HIPRI on INLINE_COMP|CALLER_COMP, so polled IO follows the
  same rules as inline/deferred completions.
- INLINE_COMP is purely for reads, writes can user CALLER_COMP to
  avoid a workqueue punt. This is necessary as we need to invalidate
  pages on write completions, and if we race with a buffered reader
  or writer on the file.

Comments

Jens Axboe July 26, 2023, 11:07 p.m. UTC | #1
On 7/24/23 4:55?PM, Jens Axboe wrote:
> Hi,
> 
> Hi,
> 
> This patchset improves async iomap DIO performance, for XFS and ext4.
> For full details on this patchset, see the v4 posting:
> 
> https://lore.kernel.org/io-uring/20230720181310.71589-1-axboe@kernel.dk/
> 
>  fs/iomap/direct-io.c | 163 ++++++++++++++++++++++++++++++++-----------
>  include/linux/fs.h   |  35 +++++++++-
>  io_uring/rw.c        |  26 ++++++-
>  3 files changed, 179 insertions(+), 45 deletions(-)
> 
> Can also be found here:
> 
> https://git.kernel.dk/cgit/linux/log/?h=xfs-async-dio.6
> 
> No change in performance since last time, and passes my testing without
> complaints.
> 
> Changes in v6:
> - Drop the polled patch, it's not needed anymore
> - Change the "inline is safe" logic based on Dave's suggestions
> - Gate HIPRI on INLINE_COMP|CALLER_COMP, so polled IO follows the
>   same rules as inline/deferred completions.
> - INLINE_COMP is purely for reads, writes can user CALLER_COMP to
>   avoid a workqueue punt. This is necessary as we need to invalidate
>   pages on write completions, and if we race with a buffered reader
>   or writer on the file.

Dave, are you happy with this one?
Dave Chinner July 28, 2023, 9:42 p.m. UTC | #2
On Wed, Jul 26, 2023 at 05:07:57PM -0600, Jens Axboe wrote:
> On 7/24/23 4:55?PM, Jens Axboe wrote:
> > Hi,
> > 
> > Hi,
> > 
> > This patchset improves async iomap DIO performance, for XFS and ext4.
> > For full details on this patchset, see the v4 posting:
> > 
> > https://lore.kernel.org/io-uring/20230720181310.71589-1-axboe@kernel.dk/
> > 
> >  fs/iomap/direct-io.c | 163 ++++++++++++++++++++++++++++++++-----------
> >  include/linux/fs.h   |  35 +++++++++-
> >  io_uring/rw.c        |  26 ++++++-
> >  3 files changed, 179 insertions(+), 45 deletions(-)
> > 
> > Can also be found here:
> > 
> > https://git.kernel.dk/cgit/linux/log/?h=xfs-async-dio.6
> > 
> > No change in performance since last time, and passes my testing without
> > complaints.
> > 
> > Changes in v6:
> > - Drop the polled patch, it's not needed anymore
> > - Change the "inline is safe" logic based on Dave's suggestions
> > - Gate HIPRI on INLINE_COMP|CALLER_COMP, so polled IO follows the
> >   same rules as inline/deferred completions.
> > - INLINE_COMP is purely for reads, writes can user CALLER_COMP to
> >   avoid a workqueue punt. This is necessary as we need to invalidate
> >   pages on write completions, and if we race with a buffered reader
> >   or writer on the file.
> 
> Dave, are you happy with this one?

I haven't had a chance to look at it yet. Had my head in log hang
bug reports these last few days...

-Dave.
Jens Axboe Aug. 1, 2023, 12:20 a.m. UTC | #3
On 7/28/23 3:42 PM, Dave Chinner wrote:
> On Wed, Jul 26, 2023 at 05:07:57PM -0600, Jens Axboe wrote:
>> On 7/24/23 4:55?PM, Jens Axboe wrote:
>>> Hi,
>>>
>>> Hi,
>>>
>>> This patchset improves async iomap DIO performance, for XFS and ext4.
>>> For full details on this patchset, see the v4 posting:
>>>
>>> https://lore.kernel.org/io-uring/20230720181310.71589-1-axboe@kernel.dk/
>>>
>>>  fs/iomap/direct-io.c | 163 ++++++++++++++++++++++++++++++++-----------
>>>  include/linux/fs.h   |  35 +++++++++-
>>>  io_uring/rw.c        |  26 ++++++-
>>>  3 files changed, 179 insertions(+), 45 deletions(-)
>>>
>>> Can also be found here:
>>>
>>> https://git.kernel.dk/cgit/linux/log/?h=xfs-async-dio.6
>>>
>>> No change in performance since last time, and passes my testing without
>>> complaints.
>>>
>>> Changes in v6:
>>> - Drop the polled patch, it's not needed anymore
>>> - Change the "inline is safe" logic based on Dave's suggestions
>>> - Gate HIPRI on INLINE_COMP|CALLER_COMP, so polled IO follows the
>>>   same rules as inline/deferred completions.
>>> - INLINE_COMP is purely for reads, writes can user CALLER_COMP to
>>>   avoid a workqueue punt. This is necessary as we need to invalidate
>>>   pages on write completions, and if we race with a buffered reader
>>>   or writer on the file.
>>
>> Dave, are you happy with this one?
> 
> I haven't had a chance to look at it yet. Had my head in log hang
> bug reports these last few days...

Is it going to happen anytime soon? Would be nice to get this
flushed out for 6.6.
Dave Chinner Aug. 1, 2023, 10:13 p.m. UTC | #4
On Mon, Jul 24, 2023 at 04:55:03PM -0600, Jens Axboe wrote:
> Hi,
> 
> Hi,
> 
> This patchset improves async iomap DIO performance, for XFS and ext4.
> For full details on this patchset, see the v4 posting:
> 
> https://lore.kernel.org/io-uring/20230720181310.71589-1-axboe@kernel.dk/
> 
>  fs/iomap/direct-io.c | 163 ++++++++++++++++++++++++++++++++-----------
>  include/linux/fs.h   |  35 +++++++++-
>  io_uring/rw.c        |  26 ++++++-
>  3 files changed, 179 insertions(+), 45 deletions(-)
> 
> Can also be found here:
> 
> https://git.kernel.dk/cgit/linux/log/?h=xfs-async-dio.6
> 
> No change in performance since last time, and passes my testing without
> complaints.

All looks good now. You can add:

Reviewed-by: Dave Chinner <dchinner@redhat.com>

To all the patches in the series.

-Dave.
Jens Axboe Aug. 1, 2023, 11:34 p.m. UTC | #5
On 8/1/23 4:13 PM, Dave Chinner wrote:
> On Mon, Jul 24, 2023 at 04:55:03PM -0600, Jens Axboe wrote:
>> Hi,
>>
>> Hi,
>>
>> This patchset improves async iomap DIO performance, for XFS and ext4.
>> For full details on this patchset, see the v4 posting:
>>
>> https://lore.kernel.org/io-uring/20230720181310.71589-1-axboe@kernel.dk/
>>
>>  fs/iomap/direct-io.c | 163 ++++++++++++++++++++++++++++++++-----------
>>  include/linux/fs.h   |  35 +++++++++-
>>  io_uring/rw.c        |  26 ++++++-
>>  3 files changed, 179 insertions(+), 45 deletions(-)
>>
>> Can also be found here:
>>
>> https://git.kernel.dk/cgit/linux/log/?h=xfs-async-dio.6
>>
>> No change in performance since last time, and passes my testing without
>> complaints.
> 
> All looks good now. You can add:
> 
> Reviewed-by: Dave Chinner <dchinner@redhat.com>
> 
> To all the patches in the series.

Great, thank you Dave!