Hi Guys, The 1st two patches introduce kernel AIO support, most of is borrowed from previous Dave's work, and thanks to ITER_BVEC, it is much simper to implement kernel AIO now.
The last two patches applies kernel aio to loop-mq. Follows benefits from using kernel aio in loop: - avoid double cache, and memory usage decreased a lot - system load gets much decreased In the commit log of patch 4, detailed performance data and system resource monitor information is provided about using kernel aio for loop block. V2: - remove 'extra' parameter to aio_kernel_alloc() - try to avoid memory allcation inside queue req callback - introduce 'use_mq' sysfs file for enabling kernel aio or disabling it V1: - link: http://marc.info/?t=140803157700004&r=1&w=2 - improve failure path in aio_kernel_submit() drivers/block/loop.c | 173 ++++++++++++++++++++++++++++++++++++++++++++++++-- drivers/block/loop.h | 11 ++++ fs/aio.c | 121 +++++++++++++++++++++++++++++++++++ fs/direct-io.c | 9 ++- include/linux/aio.h | 17 ++++- 5 files changed, 323 insertions(+), 8 deletions(-) Thanks, Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/