Messages in this thread | | | Date | Wed, 27 Jan 1999 22:24:09 +0100 (CET) | From | Andrea Arcangeli <> | Subject | Re: Linux-2.2.0 bad VM behaviour "dd if=/dev/zero of=/dev/hdc bs=256k" |
| |
On Wed, 27 Jan 1999, Linus Torvalds wrote:
> In fact we _do_ have support for it there already (in "refile_buffer()" to > be exact, and we have this "too_many dirty blocks - wake up bdflush" > thing, but it should be more aggressive I think.
My point is that I don't want more dirty buffers than the maximal number of write request that can be in fly by ll_rw_block(). So it looked to me that was the best thing to do... That way I am pretty sure that I'll be able to alloc memory without any kind of harm. Otherwise I get a fixed amount of buffers unfreeable because dirty, until the process that is using the block device stops.
The problem of the kflushd approch is that once we started ll_rw_block() via kflushd (or `update` bdflush()/sync()) the process _continue_ to write data and to generate new hogging dirty buffers, and so the number of dirty buffers remains _constant_ for a long time and all other process stalls until the process that is playing with the block device (unkillable for a long time) stops and the number of dirty buffer slowly decrease to a rasonable value again.
Andrea Arcangeli
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |