Re: O_DIRECT question

From: Phillip Susi
Date: Fri Jan 26 2007 - 12:06:20 EST


Denis Vlasenko wrote:
Which shouldn't be true. There is no fundamental reason why
ordinary writes should be slower than O_DIRECT.

Again, there IS a reason: O_DIRECT eliminates the cpu overhead of the kernel-user copy, and when coupled with multithreading or aio, allows the IO queues to be kept full with useful transfers at all times. Normal read/write requires the kernel to buffer and guess access patterns correctly to perform read ahead and write behind perfectly to keep the queues full. In practice, this does not happen perfectly all of the time, or even most of the time, so it slows things down.


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