Re: [PATCH 1/2] aio: add vectored I/O support

From: Avi Kivity
Date: Sat Oct 16 2004 - 00:20:29 EST


Joel Becker wrote:

On Thu, Oct 14, 2004 at 01:10:01PM -0700, Yasushi Saito wrote:


This is a patch against 2.6.9-rc3-mm3 that add supports for vectored async I/O. It adds two additional commands, IO_CMD_PREADV and IO_CMD_PWRITEV to libaio.h. The below is roughly what I did:



How does this differ substantially from lio_listio() of each I/O
range? Does it have some significant performance win, or is it just
aiming for a completeness that POSIX doesn't (to my knowledge) specify?



It is a huge performance win, at least on the 2.4-based RHEL kernel. Large reads (~256K) using 4K iocbs are very slow on a large RAID, while after I coded a similar patch I got a substantial speedup.

I don't know the cause for the slowdown; maybe request merging only works for queued requests, and as the RAID has a large TCQ depth, requests didn't have much of a chance to queue in the kernel.


--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.

-
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/