Help! Altos 5.3.1 fork is failing!

Scott A. Rotondo scott at altos86.Altos.COM
Thu Oct 19 07:02:36 AEST 1989

A recent posting by Jim Rosenberg of Oglevee Computer Systems reports
that fork() exhibits intermittent failures on an Altos 2000 with 4 MB
of RAM.  Each fork() failure is accompanied by a message from
getcpages() reporting that memory is unavailable.

Fork() can fail when getcpages() finds insufficient physical memory
available to allocate a u-area for the new process.  In this case,
fork() returns -1 and sets errno to EAGAIN.  This is the error
condition mentioned on the man page, although the reference to raw I/O
is incorrect.

The NPBUF kernel parameter controls the number of scatter/gather
address lists available for raw I/O, but it does not affect this fork()
failure except by reducing slightly the total amount of memory
available for user processes.

Memory requirements for processes are somewhat different between UNIX
and Xenix.  I am sending (via US mail) an Altos document that outlines
recommended memory sizes as a function of system load.  It also
describes tuning kernel parameters for maximum performance, based on
activity reports generated by the sar utility.  In this particular
case, the best thing to do is probably to add more memory or allocate
less space for structures like the buffer pool.  The latter can be
accomplished by tuning the kernel parameter NBUF.

A more reliable way to raise issues like this one is to send mail to
issues at Altos.COM or {sun,apple,pyramid}!altos86!issues.  I happened to
see this problem on the net, but mail to the above address is
guaranteed to reach Altos engineering.

	Scott Rotondo
	Project Leader, UNIX OS Development
Scott A. Rotondo, Altos Computer Systems			 (408) 946-6700

{sun|pyramid|uunet}!altos86!scott				scott at Altos.COM	

More information about the Comp.unix.i386 mailing list