Re: [RFC][PATCH 0/3] Skip I/O merges when disabled

From: Jens Axboe
Date: Thu Apr 24 2008 - 09:59:39 EST


On 24/04/2008, at 15.29, Andi Kleen <andi@xxxxxxxxxxxxxx> wrote:

"Alan D. Brunelle" <Alan.Brunelle@xxxxxx> writes:

The block I/O + elevator + I/O scheduler code spends a lot of time
trying to merge I/Os -- rightfully so under "normal" circumstances.
However, if one were to know that the incoming I/O stream was /very/
random in nature, the cycles are wasted. (This can be the case, for
example, during OLTP-type runs.)

This patch stream adds a per-request_queue tunable that (when set)
disables merge attempts, thus freeing up a non-trivial amount of CPU cycles.

It sounds interesting. But explicit tunables are always bad because
they will be only used by a elite few. Do you think it would be
possible instead to keep some statistics on how successfull merging is and
when the success rate is very low disable it automatically for some
time until a time out?

This way nearly everybody could get most of the benefit from this
change.

Not a good idea IMHO, it's much better with an explicit setting. That way you don't introduce indeterministic behavior. --
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/