Subject: Re: raidframe: failed to allocate emergency buffer!
To: Frank Kardel <kardel@acm.org>
From: Greg Oster <oster@cs.usask.ca>
List: current-users
Date: 06/02/2004 19:37:33
Frank Kardel writes:
> Hi *,
> 
> which config knobs would I need to tweak to avoid a
> raidXX:  failed to allocate emergency buffer!
> message. This message comes up when i configure about
> the 34th raid device (i have pseudodevice raid 48 in the kernelconfig).

Um... "wow".  

> As this seems to be a malloc() failure I would suspect knobs in that
> area.
> BTW. That failure is no handles to gracefully. Processes accessing
> that failed device hang fortunatly interuptable. But that does not seem
> to be a sane state (will PR that).

"Emergency buffers" are tied to each individual array.  For the 
typical case of 3-4 RAID arrays per system, that works fine.  For 34 
RAID sets, it breaks down horribly with a whole whack of 
pre-allocated space that probably should be shared.. 
(10*34*64K --> lots of kernel VM used up!)

In particular, you've probably eaten up *all* available kernel 
memory, and so anything else that needs kernel memory is going to be 
starved too...

If you need 34+ RAID devices, then you'll need to bump up the 
total memory allocated to kernel stuffs...  I'll need to think a bit 
as to how to "fix" this problem -- it'd be easy if these buffers 
really could be shared among all RAID sets, but it's quite nasty to 
keep a shared pool between all RAID sets when the buffer sizes can be 
quite different.. :( 

Later...

Greg Oster