Messages in this thread | | | Date | Mon, 24 Jan 2011 20:09:17 +0100 | From | Jens Axboe <> | Subject | Re: [PATCH 10/10] fs: make aio plug |
| |
On 2011-01-24 18:59, Jeff Moyer wrote: > Jens Axboe <jaxboe@fusionio.com> writes: > >> From: Shaohua Li <shaohua.li@intel.com> >> >> Signed-off-by: Shaohua Li <shaohua.li@intel.com> >> Signed-off-by: Jens Axboe <jaxboe@fusionio.com> >> --- >> fs/aio.c | 4 ++++ >> 1 files changed, 4 insertions(+), 0 deletions(-) >> >> diff --git a/fs/aio.c b/fs/aio.c >> index c5ea494..1476bed 100644 >> --- a/fs/aio.c >> +++ b/fs/aio.c >> @@ -1660,6 +1660,7 @@ long do_io_submit(aio_context_t ctx_id, long nr, >> long ret = 0; >> int i; >> struct hlist_head batch_hash[AIO_BATCH_HASH_SIZE] = { { 0, }, }; >> + struct blk_plug plug; >> >> if (unlikely(nr < 0)) >> return -EINVAL; >> @@ -1676,6 +1677,8 @@ long do_io_submit(aio_context_t ctx_id, long nr, >> return -EINVAL; >> } >> >> + blk_start_plug(&plug); >> + >> /* >> * AKPM: should this return a partial result if some of the IOs were >> * successfully submitted? >> @@ -1698,6 +1701,7 @@ long do_io_submit(aio_context_t ctx_id, long nr, >> if (ret) >> break; >> } >> + blk_finish_plug(&plug); >> aio_batch_free(batch_hash); > > I'm pretty sure you want blk_finish_plug to run after aio_batch_free.
You mean to cover the iput()? That's not a bad idea, if that ends up writing it out. I did a few read tests here and confirmed it's sending down batches of whatever number is submitted.
-- Jens Axboe
| |