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]