Subject: Re: maxproc on the CATS
To: Mark Brinicombe <mark@causality.com>
From: S.J. Borrill <sjb42@cus.cam.ac.uk>
List: port-arm32
Date: 08/27/1998 13:43:58
On Wed, 26 Aug 1998, Mark Brinicombe wrote:

> On Tue, 25 Aug 1998, S.J. Borrill wrote:
> 
> > I've been altering the number of processes by altering the boot string to
> > include maxproc=<number>. This works fine up to 128 processes, but seems
> > to go a bit screwy after that. maxproc=256 fails during booting when it
> > tries to fork init and drops to the db> prompt. maxproc=192 allows the
> > machine to boot, but only lets a few processes be started before the shell
> > returns 'no more processes' (note doesn't complain about L1 page tables).
> > Am I limited to a small number of processes on the CATS or is it just a
> > silly mistake or some soft resource limit? I need more processes if I want
> > to run Apache (which forks a child per client request). On a RiscPC, I can
> > set 256 L1 page tables no problem and it all works fine.
> Hmmmm,
> 	Probably not he answer you want ...

<snip working example>

As you know, I've got two CATS. One older with a 1.3F kernel (dating from
June) which is the one showing the above behaviour and a newer one
(dating fromwhich
doesn't (but see below). 

> Any chance of a trace when you drop into the debugger ?

_panic
_main
_kernel_text

just after the panic: fork init error

> ne thing to note, the maxproc option will only work as long as
> PMAP_STATIC_L1S is not defined as an option in the config file.

Ah. Unpacking the kernel source included on the disc of the new machine
show that option PMAP_STATIC_L1S is set to 128 (which explains why all my
experiments on that machine with maxproc were in vain). Interestingly,
with PMAP_STATIC_L1S=128, I could start 146 processes. Why that number?

With a recompiled kernel but without the PMAP_STATIC_L1S line things are
different. maxproc=128 works fine (can have up to 146 processes running). 
maxproc=256 gets further booting, but dies later on. When samba is
starting, it dies with a permission fault in kernel by kernel. Trace
shows: 

_panic
_data_abort_handler
_pmap_allocpagedir
_pmap_pinit
_pmap_create
_uvmspace_init
_uvmspace_alloc
_uvmspace_fork
_uvm_fork
_fork1
_sys_fork

maxproc=192 appears to work fine, but it dies in the same way as above
when more than 120 processes are running.

You didn't hardwire PMAP_STATIC_L1S=128 because that was the only one that
would work did you? ;-)

> CATS kernels should not the same limits as RiscPC ones there should be no
> differnece.

Not quite sure what you are saying there.

P.S. I notice that with the newer CATS kernel, X is selected with
Ctrl-Alt-F2 rather than Ctrl-Alt-F7 (thus meaning you lose ttyv1).

Stephen Borrill