recent fixes
utzoo!decvax!ucbvax!dove at mit-dspg
utzoo!decvax!ucbvax!dove at mit-dspg
Sat Jan 16 14:29:27 AEST 1982
From: dove at mit-dspg at mit-mc
================================
1 swapping bug causes system hang on small systems.
All unix systems for some time have had this bug!
-----------------
Suppose a non sticky sep text job forks soon enough after
startup that the text is still waiting to be written and
the parent is swapped out. Now the child execs another file.
The textp of the child is cleared and it attempts to dec the count
of the text. This locks it (the text) and xccdec() tries to swap
it out. At this point the child is sleeping so sched() looks for
core (remember that this is a SMALL system) finds the child with
no APPARENT text locked (since the textp was cleared) and swaps it.
Unfortunately, available memory is still fragmented by the locked
text and the highest priority jobs is sep i/d and wont fit. BINGO
dead system.
My cure was to make any proc sleeping on PSWP or PSWP+1
unswappable. Since such things are rare it hasn't hurt swapping much
and seems to have cured the problem. We only started having it
when we began using an overlayed 2.8bsd and were left with under 128
kb of user memory.
===============================
2 The 2.8bsd dh and dz drivers I had left PENABLE on even if both
or neither EVENP or ODDP were on. This made uucp not work.
I now leave the hdwr in 8 bit mode in such circumstances.
More information about the Comp.bugs.2bsd
mailing list