Message ID | 20210811193533.766613-7-axboe@kernel.dk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Enable bio recycling for polled IO | expand |
On Wed, Aug 11, 2021 at 01:35:33PM -0600, Jens Axboe wrote: > Initialize the bio_set used for IO with per-cpu bio caching enabled, > and use the new bio_alloc_kiocb() helper to dip into that cache. > > Signed-off-by: Jens Axboe <axboe@kernel.dk> This seems to be pretty much my patch as-is..
On 8/12/21 1:04 AM, Christoph Hellwig wrote: > On Wed, Aug 11, 2021 at 01:35:33PM -0600, Jens Axboe wrote: >> Initialize the bio_set used for IO with per-cpu bio caching enabled, >> and use the new bio_alloc_kiocb() helper to dip into that cache. >> >> Signed-off-by: Jens Axboe <axboe@kernel.dk> > > This seems to be pretty much my patch as-is.. It is, sorry I'll fix the attribution.
diff --git a/fs/block_dev.c b/fs/block_dev.c index 9ef4f1fc2cb0..798bb9d8f533 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -385,7 +385,7 @@ static ssize_t __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, (bdev_logical_block_size(bdev) - 1)) return -EINVAL; - bio = bio_alloc_bioset(GFP_KERNEL, nr_pages, &blkdev_dio_pool); + bio = bio_alloc_kiocb(iocb, GFP_KERNEL, nr_pages, &blkdev_dio_pool); dio = container_of(bio, struct blkdev_dio, bio); dio->is_sync = is_sync = is_sync_kiocb(iocb); @@ -513,7 +513,9 @@ blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter) static __init int blkdev_init(void) { - return bioset_init(&blkdev_dio_pool, 4, offsetof(struct blkdev_dio, bio), BIOSET_NEED_BVECS); + return bioset_init(&blkdev_dio_pool, 4, + offsetof(struct blkdev_dio, bio), + BIOSET_NEED_BVECS|BIOSET_PERCPU_CACHE); } module_init(blkdev_init);
Initialize the bio_set used for IO with per-cpu bio caching enabled, and use the new bio_alloc_kiocb() helper to dip into that cache. Signed-off-by: Jens Axboe <axboe@kernel.dk> --- fs/block_dev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)