block: fast-path for small and simple direct I/O requests
authorChristoph Hellwig <hch@lst.de>
Mon, 31 Oct 2016 17:59:25 +0000 (11:59 -0600)
committerJens Axboe <axboe@fb.com>
Thu, 17 Nov 2016 20:34:45 +0000 (13:34 -0700)
commit189ce2b9dcc3494410a576fbecbedbb6b21e51e0
tree054306217a01b7b1e9cf43347c67d7ca8549a324
parent429a787be6793554ee02aacc7e1f11ebcecc4453
block: fast-path for small and simple direct I/O requests

This patch adds a small and simple fast patch for small direct I/O
requests on block devices that don't use AIO.  Between the neat
bio_iov_iter_get_pages helper that avoids allocating a page array
for get_user_pages and the on-stack bio and biovec this avoid memory
allocations and atomic operations entirely in the direct I/O code
(lower levels might still do memory allocations and will usually
have at least some atomic operations, though).

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
Tested-By: Stephen Bates <sbates@raithlin.com>
Reviewed-By: Stephen Bates <sbates@raithlin.com>
fs/block_dev.c