Re: RFC for 2.6: avoid OOM at bounce buffer storm

From: Martin Wilck
Date: Wed Jun 08 2005 - 13:58:16 EST


Hello Andrew,

The semaphore is initialised with the limit level, so once it has been
down()ed more than `limit' times, processes will block until someone does
up().

Oh - of course. Neat.

It appears to run much more smoothly now, perhaps because wakeup_bdflush() isn't called any more. Are you still interested in more data?

Perhaps the newer kernel has writeback thresholding fixes so it's not
possible to dirty as much memory with write().

I have collected more data and the behavior with 2.6.12-rc5-mm2 is flawless, there is a continuous writeback flow close to the maximum rate possible, and the bounce buffer usage never gets anywhere near the limit where it'd become dangerous. At least not in my test setup. The latest fedora kernel 2.6.11-1.27 also behaves ok, although it doesn't adapt to changing io load as smoothly as 2.6.12-rc5-mm2 does, and the writeback rate is oscillating more strongly.

The kernels where I observe the problem are 2.6.9 kernels from RedHat EL4. I have posted this here because I saw that the highmem bounce buffer/memory pool implementation was identical between the 2.6.9 kernel and all but the very latest development kernels, and I concluded prematurely that the behavior under my scenario must also be the same -- which it wasn't. I apologize for not having looked more closely.

Many thanks for looking into this anyway. From a theoretical point of view, I still think I had a valid point :-/.

Your patch sure looks good to me.

Regards
Martin

--
Martin Wilck Phone: +49 5251 8 15113
Fujitsu Siemens Computers Fax: +49 5251 8 20409
Heinz-Nixdorf-Ring 1 mailto:Martin.Wilck@xxxxxxxxxxxxxxxxxxx
D-33106 Paderborn http://www.fujitsu-siemens.com/primergy
-
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/