Help! Altos 5.3.1 fork is failing!

Jerry Gardner jerry at altos86.Altos.COM
Tue Oct 24 09:49:02 AEST 1989


In article <1989Oct20.020309.2081 at NCoast.ORG> allbery at ncoast.ORG (Brandon S. Allbery) writes:
>
>As far as I can tell, "fork failed"s happen when memory is mostly full and
>something wants to fork and for some stupid reason Altos 5.3[a-d][DT][0-9]
>doesn't want to page anything out to make more room in core even though it can
>do so.  I have some "sar" output that corroborates this, "fork failed" happens
>when a process tries to fork and there are < 100 free 512-byte (I think that's
>the units sar uses, I need to check) chunks of memory.
>
>I plan to ram this down Altos T/S's collective throat, since they haven't
>fixed it in 5.3dT1 and I reported it in 5.3bT1 (3 upgrades have gone by so
>far...).
>

The fork() failures you are seeing are occuring when procdup() calls
dupreg().  Dupreg() calls ptsalloc() which eventually calls getcpages() to
allocate memory for page tables to map the new child process' u-area.  
Apparently, the kernel is paranoid in one place here and it calls ptsalloc
with a flag that doesn't allow it to sleep.

The best way to make this problem go away is to get more RAM.  You'd be
amazed how little paging a 64MB 2000 will do.






-- 
Jerry Gardner, NJ6A					Altos Computer Systems
UUCP: {sun|pyramid|sco|amdahl|uunet}!altos86!jerry	2641 Orchard Parkway
Internet: jerry at altos.com				San Jose, CA  95134
I survived the Big One, October 17, 1989                946-6700



More information about the Comp.unix.i386 mailing list