Re: Counter-kludge for 2.5.x hanging when writing to block device

Andrew Morton (akpm@digeo.com)
Tue, 3 Jun 2003 03:20:34 -0700


Jens Axboe <axboe@suse.de> wrote:
>
> > b) it should check that there are still requests in flight after parking
> > itself on the waitqueue rather than relying on the timeout.
>
> This is important, would be much nicer to pass in the backing dev. This
> is a big problem, imho. It's broken right now.

The throttling is not really a per-device concept. It is a "global"
concept.

If a process has written to a really slow device and has encountered
throttling due to exceeded dirty memory limits, we _do_ want to wake that
process up (to reevaluate the system state) if a bunch of writes terminate
against a fast device.

There is a fixed amount of system memory which the administrator has
dedicated to buffering of dirty-and-writeback data and I believe that not
discriminating between different bandwidth devices will give the overall
lowest latency. This may be wrong, and maybe we do want to throttle tasks
which write to slow devices more heavily.

Or place the device's nominal bandwidth in the backing_dev_info, account
for dirty memory on a per-queue basis and limit the permissible amount of
dirty memory against slower devices. That's probably not too hard to do
but I'm not sure that the combination of slow and fast devices both under
heavy writeout at the same time is common enough to justify it.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/