All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] iov_iter retry fixes
@ 2021-09-17 14:44 Jens Axboe
  2021-09-17 14:49 ` Al Viro
  2021-09-17 16:29 ` pr-tracker-bot
  0 siblings, 2 replies; 4+ messages in thread
From: Jens Axboe @ 2021-09-17 14:44 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: io-uring, viro

Hi Linus,

This adds a helper to save/restore iov_iter state, and modifies io_uring
to use it. After that is done, we can kill the iter->truncated addition
that we added for this release. The io_uring change is being overly
cautious with the save/restore/advance, but better safe than sorry and
we can always improve that and reduce the overhead if it proves to be of
concern. The only case to be worried about in this regard is huge IO,
where iteration can take a while to iterate segments.

I spent some time writing test cases, and expanded the coverage quite a
bit from the last posting of this. liburing carries this regression test
case now:

https://git.kernel.dk/cgit/liburing/tree/test/file-verify.c

which exercises all of this. It now also supports provided buffers, and
explicitly tests for end-of-file/device truncation as well.

On top of that, Pavel sanitized the IOPOLL retry path to follow the
exact same pattern as normal IO.

Please pull!


The following changes since commit d6c338a741295c04ed84679153448b2fffd2c9cf:

  Merge tag 'for-linus-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml (2021-09-09 13:45:26 -0700)

are available in the Git repository at:

  git://git.kernel.dk/linux-block.git tags/iov_iter.3-5.15-2021-09-17

for you to fetch changes up to b66ceaf324b394428bb47054140ddf03d8172e64:

  io_uring: move iopoll reissue into regular IO path (2021-09-15 09:22:35 -0600)

----------------------------------------------------------------
iov_iter.3-5.15-2021-09-17

----------------------------------------------------------------
Jens Axboe (3):
      iov_iter: add helper to save iov_iter state
      io_uring: use iov_iter state save/restore helpers
      Revert "iov_iter: track truncated size"

Pavel Begunkov (1):
      io_uring: move iopoll reissue into regular IO path

 fs/io_uring.c       | 116 ++++++++++++++++++++++++++++++++++------------------
 include/linux/uio.h |  21 +++++++---
 lib/iov_iter.c      |  36 ++++++++++++++++
 3 files changed, 128 insertions(+), 45 deletions(-)

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [GIT PULL] iov_iter retry fixes
  2021-09-17 14:44 [GIT PULL] iov_iter retry fixes Jens Axboe
@ 2021-09-17 14:49 ` Al Viro
  2021-09-17 14:51   ` Jens Axboe
  2021-09-17 16:29 ` pr-tracker-bot
  1 sibling, 1 reply; 4+ messages in thread
From: Al Viro @ 2021-09-17 14:49 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Linus Torvalds, io-uring

On Fri, Sep 17, 2021 at 08:44:32AM -0600, Jens Axboe wrote:
> Hi Linus,
> 
> This adds a helper to save/restore iov_iter state, and modifies io_uring
> to use it. After that is done, we can kill the iter->truncated addition
> that we added for this release. The io_uring change is being overly
> cautious with the save/restore/advance, but better safe than sorry and
> we can always improve that and reduce the overhead if it proves to be of
> concern. The only case to be worried about in this regard is huge IO,
> where iteration can take a while to iterate segments.
> 
> I spent some time writing test cases, and expanded the coverage quite a
> bit from the last posting of this. liburing carries this regression test
> case now:
> 
> https://git.kernel.dk/cgit/liburing/tree/test/file-verify.c
> 
> which exercises all of this. It now also supports provided buffers, and
> explicitly tests for end-of-file/device truncation as well.
> 
> On top of that, Pavel sanitized the IOPOLL retry path to follow the
> exact same pattern as normal IO.

I can live with that; I do have problems with io-uring and its interactions
with iov_iter, but those are mostly independent from the stuff you are
doing here.

Still digging through your FSM from hell... ;-/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [GIT PULL] iov_iter retry fixes
  2021-09-17 14:49 ` Al Viro
@ 2021-09-17 14:51   ` Jens Axboe
  0 siblings, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2021-09-17 14:51 UTC (permalink / raw)
  To: Al Viro; +Cc: Linus Torvalds, io-uring

On 9/17/21 8:49 AM, Al Viro wrote:
> On Fri, Sep 17, 2021 at 08:44:32AM -0600, Jens Axboe wrote:
>> Hi Linus,
>>
>> This adds a helper to save/restore iov_iter state, and modifies io_uring
>> to use it. After that is done, we can kill the iter->truncated addition
>> that we added for this release. The io_uring change is being overly
>> cautious with the save/restore/advance, but better safe than sorry and
>> we can always improve that and reduce the overhead if it proves to be of
>> concern. The only case to be worried about in this regard is huge IO,
>> where iteration can take a while to iterate segments.
>>
>> I spent some time writing test cases, and expanded the coverage quite a
>> bit from the last posting of this. liburing carries this regression test
>> case now:
>>
>> https://git.kernel.dk/cgit/liburing/tree/test/file-verify.c
>>
>> which exercises all of this. It now also supports provided buffers, and
>> explicitly tests for end-of-file/device truncation as well.
>>
>> On top of that, Pavel sanitized the IOPOLL retry path to follow the
>> exact same pattern as normal IO.
> 
> I can live with that; I do have problems with io-uring and its interactions
> with iov_iter, but those are mostly independent from the stuff you are
> doing here.

I actually think we can end up cleaning up some of those bits post this,
it'll definitely make it easier by having clean save/restore states.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [GIT PULL] iov_iter retry fixes
  2021-09-17 14:44 [GIT PULL] iov_iter retry fixes Jens Axboe
  2021-09-17 14:49 ` Al Viro
@ 2021-09-17 16:29 ` pr-tracker-bot
  1 sibling, 0 replies; 4+ messages in thread
From: pr-tracker-bot @ 2021-09-17 16:29 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Linus Torvalds, io-uring, viro

The pull request you sent on Fri, 17 Sep 2021 08:44:32 -0600:

> git://git.kernel.dk/linux-block.git tags/iov_iter.3-5.15-2021-09-17

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/ddf21bd8ab984ccaa924f090fc7f515bb6d51414

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-09-17 16:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-17 14:44 [GIT PULL] iov_iter retry fixes Jens Axboe
2021-09-17 14:49 ` Al Viro
2021-09-17 14:51   ` Jens Axboe
2021-09-17 16:29 ` pr-tracker-bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.