[PATCH v2 0/4] block & aio: improve loop with kernel aio

From: Ming Lei
Date: Tue Jan 13 2015 - 10:45:36 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/