From 448ad91db4a560c01f89bd6f7e4bec7d869926a5 Mon Sep 17 00:00:00 2001 From: Ming Lei Date: Fri, 4 Jul 2014 18:04:33 +0800 Subject: block: block: introduce APIs for submitting IO as a batch This patch introduces three APIs so that following patches can support queuing I/O requests and submitting them as a batch for improving I/O performance. Reviewed-by: Paolo Bonzini Signed-off-by: Ming Lei Signed-off-by: Stefan Hajnoczi --- include/block/block.h | 4 ++++ include/block/block_int.h | 5 +++++ 2 files changed, 9 insertions(+) (limited to 'include') diff --git a/include/block/block.h b/include/block/block.h index baecc26dfc..32d36760fd 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -584,4 +584,8 @@ AioContext *bdrv_get_aio_context(BlockDriverState *bs); */ void bdrv_set_aio_context(BlockDriverState *bs, AioContext *new_context); +void bdrv_io_plug(BlockDriverState *bs); +void bdrv_io_unplug(BlockDriverState *bs); +void bdrv_flush_io_queue(BlockDriverState *bs); + #endif diff --git a/include/block/block_int.h b/include/block/block_int.h index 8f8e65e763..f6c3befed8 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -261,6 +261,11 @@ struct BlockDriver { void (*bdrv_attach_aio_context)(BlockDriverState *bs, AioContext *new_context); + /* io queue for linux-aio */ + void (*bdrv_io_plug)(BlockDriverState *bs); + void (*bdrv_io_unplug)(BlockDriverState *bs); + void (*bdrv_flush_io_queue)(BlockDriverState *bs); + QLIST_ENTRY(BlockDriver) list; }; -- cgit v1.2.3-55-g7522