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