[comp.bugs.sys5] Possible bug in YOUR version of Sys V, Rel. 3 For ATT 3B2's

john@polyof.UUCP ( John Buck ) (05/24/88)

A problem I found with our (source) version of AT&T System 5, Rel. 3 is
that the sptmap (system page table map) has the incorrect number of pages
mfree()'d at system startup.  The problem could be one of two things:
	a) vuifile is screwed up (the MMU map for sptmap is too small, and
	   overflows into win_ublk)
	b) SYSSEGSZ is too big. (1024 pages instead of 960 pages).  Seems
	   that KV_sysseg starts at 0x401e0000, and KV_windows (win_ublk)
	   starts at 0x403c0000.  According to vuifile, length of KV_sysseg
	   is 0x1e0000 (which is correct).  In param.h it is 1024 pages
	   (1024 pages x 2048 bytes/page = 0x200000, NOT 0x1e0000).

I fixed this by changing  SYSSEGSZ in param.h, and recompiling the whole system.
Binary only sites could probably fix it by carefully patching /unix using
sdb (or some derivative), if they know where to look for the several
occurances of SYSSEGSZ.

(PS I noticed this while adding some networking code that makes calls to kseg()..
seems I got in a loop, and called kseg too many times, and I got an MMU fault
instead of an OUT OF MEMORY!).  /etc/crash said the address in question was
0x403c0004 (first word past end of REAL KV_sysseg.) Further examination of
sptmap indicated that there were, in fact, addresses in sptmap that were beyond
0x403c0000.

If you want more detailed info, send me mail.

John Buck
john@polygraf.bitnet
john@polyof.poly.edu [128.238.10.100]
john@graf.poly.edu
gould!trixie!polyof!john
rti!polyof!john
Polytechnic University
Route 110
Farmingdale, NY 11735
516-744-4206 [Live, and direct]