Subject: Re: mb_map full
To: None <Havard.Eidnes@runit.sintef.no>
From: None <Chris_G_Demetriou@NIAGARA.NECTAR.CS.CMU.EDU>
List: port-i386
Date: 01/20/1996 15:31:54
[ sorry about the blank message; keyboard flakey.  grn. ]

> [ mb_map full ]
> 
> If you're not careful and not stress your machine even more, the next
> thing you could see would be "kmem_malloc: mb_map too small", and that
> would be the last breath from your running kernel (i.e. it's a panic).

This is a bit misleading.

in fact, the same exact thing that causes the warning causes the
panic...

the difference is how kmem_malloc() is called.  if it is called at
interrupt time, and told not to block waiting for more memory, and has
no more space in the mb_map, then you get the warning log message.

if it's called not at interrupt time, and is told that it _can_ wait
for memory but no space is available in the mb_map, then it panics
because the code that would enable it to successfully block and later
complete was never written.  (it's not quite as easy as it sounds...)

note that "space in the mb_map" != "memory to fill the request."  even
if there's memory, if there's no space to map it, it can't be filled.


There's a similar panic for kmem_map full (though for that, there's no
warning).  both should be fixed, and i'd be willing to help anybody
who wants to do that, the right way.  (if you're interested, send me
private mail.)


chris