OSDN Git Service

block: avoid extra iter advance with async iocb
authorPavel Begunkov <asml.silence@gmail.com>
Wed, 27 Oct 2021 12:21:07 +0000 (13:21 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 27 Oct 2021 12:54:58 +0000 (06:54 -0600)
commit1bb6b81029456f4e2e6727c5167f43bdfc34bee5
tree02ea0da43b7ad152375b9fb59cd2c90ed0acb1cf
parenta2247f19ee1c5ad75ef095cdfb909a3244b88aa8
block: avoid extra iter advance with async iocb

Nobody cares about iov iterators state if we return -EIOCBQUEUED, so as
the we now have __blkdev_direct_IO_async(), which gets pages only once,
we can skip expensive iov_iter_advance(). It's around 1-2% of all CPU
spent.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/a6158edfbfa2ae3bc24aed29a72f035df18fad2f.1635337135.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bio.c
block/fops.c
include/linux/bio.h