iov: improve copy_iovec_from_user() code generation
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 30 Mar 2023 21:53:51 +0000 (14:53 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 24 Apr 2023 17:37:17 +0000 (10:37 -0700)
commit487c20b016dc48230367a7be017f40313e53e3bd
tree29788f6f58adb0fc0b7d584268854386fef305c5
parentb9dff2195f8a5847fad801046b26955e05670d31
iov: improve copy_iovec_from_user() code generation

Use the same pattern as the compat version of this code does: instead of
copying the whole array to a kernel buffer and then having a separate
phase of verifying it, just do it one entry at a time, verifying as you
go.

On Jens' /dev/zero readv() test this improves performance by ~6%.

[ This was obviously triggered by Jens' ITER_UBUF updates series ]

Reported-and-tested-by: Jens Axboe <axboe@kernel.dk>
Link: https://lore.kernel.org/all/de35d11d-bce7-e976-7372-1f2caf417103@kernel.dk/
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/iov_iter.c