Subject: Re: pmap: Cannot allocate physical memory for L1 (12)
To: Stephen Borrill <netbsd@precedence.co.uk>
From: Reinoud Zandijk <zandijk@cs.utwente.nl>
List: port-arm32
Date: 09/15/1999 14:38:46
Hi Stephen,

On Wed, 15 Sep 1999, Stephen Borrill wrote:

> We do most seriously have a problem here. The maxproc/PMAP_STATIC_L1S
> value is the number of L1 slots statically allocated at boot time. Each
> one is 16kB. If you tried to have maxproc = NPROC then 16 * 532 = 8512kB
> which would lock out 8.5MB of your RAM at boot time (it can't be swapped
> out). Other ports dynamically allocate the tables, AFAIK and hence don't
> have this problem. 

<snip>

> Static L1 tables are allocated to guarantee a number of 16kB blocks
> composed of contiguous pages.  Once those have been exhausted, the
> system will try to allocated further blocks dynamically (but usually
> fails as it failed to get contiguous blocks).

Is it posible/desirable to make room for L1 pages, even if there aren't 4
contigoues 16k blocks of memory by 'just' releasing 4 contiguous pages in
hopefully idle tasks ? Isn't it just the same as the plain old page
swapping thing only that you need 4 contigous 4kb pages instead of `just
give me a random one' ?? 

> The problem is that most people working on NetBSD/arm32 seem to view it
> as a research interest rather than a potential server box. The L1 limits
> mean that it's not a lot of use as an Apache web server (esp. if you use
> CGIs) as you just run out of processes or the machine stiffs. 

For me, it's lack of knowledge about the NetBSD VM stuff, or must I say
cowardness since I don't want to mess up my base machine; i.e. I've got no
experiment hardware..

Reinoud