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