From: Dan Aloni <da-x@co...> - 2005-01-09 18:19:04
On Sun, Jan 09, 2005 at 11:37:00AM -0500, Ian Bonnycastle wrote:
> Hey guys,
> I just got a major kernel panic/crash with my coLinux while it was
> sitting idle for most of the night (I don't think I was doing anything
> in the background on it.) I've attached the crash log... it might be
> in UNIX file format, so check before you load it. I don't know if
> anything important is in it, but it was the only thing I could find
> (It came from /var/log/messages on a Debian system). This is the new
> monotone release with Dan's memory patch on it, and the 2.6.10 kernel.
> Let me know if it helps!
It helps! :)
What happened is that during the night Linux's caches got filled, and
allocations in the host OS failed as a result of memory shortage. So
far so good, but the code that handles these failures was calling the
wrong free function (mm/page_alloc.c has a lot of those) - bug.
I've commited a fix (modified patch/linux), here's a paste from
This revision fixes some logic concering failures during page allocation:
* Use the right function free pages. This should fix the Oops'es.
* Try to shrink the caches in order to free some memory for the
host OS when allocations start failing.
It's best to choose a memory setting that doesn't eat up too
much of the host OS's memory once the caches are full.
If you set the memory too high, the two OS will "fight" over the
free pages during stress and waste CPU time.