io-uring.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: io-uring <io-uring@vger.kernel.org>,
	"viro@zeniv.linux.org.uk" <viro@zeniv.linux.org.uk>
Subject: [GIT PULL] iov_iter retry fixes
Date: Fri, 17 Sep 2021 08:44:32 -0600	[thread overview]
Message-ID: <9460dc73-e471-d664-7610-a10812a4da24@kernel.dk> (raw)

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


             reply	other threads:[~2021-09-17 14:45 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-17 14:44 Jens Axboe [this message]
2021-09-17 14:49 ` [GIT PULL] iov_iter retry fixes Al Viro
2021-09-17 14:51   ` Jens Axboe
2021-09-17 16:29 ` pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9460dc73-e471-d664-7610-a10812a4da24@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=io-uring@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).