Re: [PATCH] backing dev unplugging

Jens Axboe
2004-03-11T12:22:15Z

On Thu, Mar 11 2004, Christophe Saout wrote:
> Am Mi, den 10.03.2004 schrieb Jens Axboe um 13:45:
>
> > diff -ur -X /home/axboe/cdrom/exclude /opt/kernel/linux-2.6.4-rc2-mm1/drivers/md/dm-crypt.c linux-2.6.4-rc2-mm1-plug/drivers/md/dm-crypt.c
> > --- /opt/kernel/linux-2.6.4-rc2-mm1/drivers/md/dm-crypt.c 2004-03-09 13:08:48.000000000 +0100
> > +++ linux-2.6.4-rc2-mm1-plug/drivers/md/dm-crypt.c 2004-03-09 15:27:36.000000000 +0100
> > @@ -668,7 +668,7 @@
> >
> > /* out of memory -> run queues */
> > if (remaining)
> > - blk_run_queues();
> > + blk_congestion_wait(bio_data_dir(clone), HZ/100);
>
> Why did you change this? It was the way I wanted it.
>
> If we were out of memory the buffers were allocated from a mempool and I
> want to get it out as soon as possible. If we are OOM the write will
> most likely be the VM trying to free some memory and it would be
> counterproductive to wait. It is not unlikely that we are the only
> writer to that disk so there's a chance that the queue is not congested.

Because it wasn't right, like most of those blk_run_queues(). The vm
should get things going, you basically just want to take a little nap
and retry. The idea with a small wait is to allow io to make some
progress, you gain nothing retrying right away (except wasting CPU
spinning). It might want to be 1 instead of HZ/100, though. I doubt it
would make much difference, since it's an OOM condition.

--
Jens Axboe