Subject: port-sparc/7636: compiling swig makes 1.4 crash on my SPARCclassic
To: None <gnats-bugs@gnats.netbsd.org>
From: David Rankin <drankin@rumpole.bohemians.lexington.ky.us>
List: netbsd-bugs
Date: 05/24/1999 07:36:14
>Number:         7636
>Category:       port-sparc
>Synopsis:       compiling swig makes 1.4 crash on my SPARCclassic
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    port-sparc-maintainer (NetBSD/sparc Portmaster)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon May 24 07:35:01 1999
>Last-Modified:
>Originator:     David Rankin
>Organization:
Bohemians Unincorporated
>Release:        NetBSD 1.4
>Environment:
	
System: NetBSD rumpole.bohemians.lexington.ky.us 1.4 NetBSD 1.4 (GENERIC_SCSI3) #0: Sun May 9 04:05:20 MEST 1999 pk@flambard:/usr/src/sys/arch/sparc/compile/GENERIC_SCSI3 sparc


>Description:
When running the following command inside of swig's package, the system
crashes:

c++ -I../Include -O2 -DSWIG_LIB='"/usr/pkg/lib/swig_lib"' -DSWIG_CC='"c++"'  -DSTDC_HEADERS=1 -DHAVE_ALLOCA=1 -DSWIG_LANG=TCL -DSWIG_DOC=ASCII parser.cxx -c -o parser.o

I can run this command with no other significant load on the system 
(all that I have running is ssh-1.2.27 and sendmail), even after a fresh
reboot, and get it to crash.  The system has 16M of memory & 150M of swap,
and it uses only ~1/3 of the swap before crashing.

This same bug appears to occur during other heavy compiles as well, although 
I cannot cause it to occur with consistency. I don't believe that it's
hardware, since the machine was working fine (including occasional heavy
compiles) when I had a 1.3-current snapshot on it. 

This crash has happened with both kernels out of the distribution set, as well
as a kernel I compiled myself.

I finally got a trace with a ddb kernel as well. It (and the only console
output at the time of the problem) is:

rumpole# extent `swap0x0000' (0x0 - 0x833f), flags = 0x0
     0x0 - 0xae
panic: pool_get(extent): free list modified: magic=f0279e58; page 0xf0279000; item addr 0xf0279e70

Stopped in pagedaemon at        _Debugger+0x4:  jmpl            [%o7 + 0x8], %g
0
db> trace
_pool_get(0xf0279e70, 0x0, 0x1, 0xf0165c00, 0x400, 0xa00) at _pool_get+0x2b0
_extent_alloc_region_descriptor(0xf0271f80, 0x0, 0xfc000000, 0xf00f0594, 0x6, 0
x28) at _extent_alloc_region_descriptor+0xcc
_extent_alloc_subregion1(0xf0271f80, 0xfc000000, 0xfe000000, 0x1000, 0x1000, 0x
0) at _extent_alloc_subregion1+0x138
_iommu_dmamap_load(0x910, 0xf026ee40, 0xf0277910, 0x7, 0x0, 0x1) at _iommu_dmam
ap_load+0x90
_lsi64854_setup(0xf0270980, 0xf0277eb8, 0xf0277ebc, 0x0, 0xf013bc74, 0xf001004c
) at _lsi64854_setup+0x150
_esp_dma_setup(0xf0277800, 0xf0277eb8, 0xf0277ebc, 0x0, 0xf013bc74, 0x28) at _e
sp_dma_setup+0x18
_ncr53c9x_select(0xf0277800, 0xf02778fc, 0x0, 0x3, 0xf1d91c28, 0x419000e6) at _
ncr53c9x_select+0x228
_ncr53c9x_sched(0xf0277800, 0x1, 0x1, 0xf0165c00, 0x400, 0xa00) at _ncr53c9x_sc
hed+0xb0
_ncr53c9x_done(0xf0277800, 0xf02778c8, 0xf000f6dc, 0xf00f0594, 0x6, 0x28) at _n
cr53c9x_done+0x178
_ncr53c9x_intr(0xf0277800, 0xf000dfe8, 0x33, 0xf00a62d8, 0xf0c710c0, 0x0) at _n
cr53c9x_intr+0x16f8
_sparc_interrupt44c(0x414000e3, 0x1, 0xf423f, 0xf016f9c0, 0x0, 0x2710) at _spar
c_interrupt44c+0x170
_statclock(0xf013bfb0, 0x414000e4, 0xf0167800, 0xfe000000, 0x809c4000, 0xa00) a
t _statclock+0x188
_clockintr(0xf013bfb0, 0xf00e7ff4, 0x0, 0x0, 0x0, 0x61) at _clockintr+0x48
_sparc_interrupt44c(0x10, 0xf0035904, 0x0, 0x0, 0xf1d91c28, 0x419000e6) at _spa
rc_interrupt44c+0x170
_printf(0xf0142400, 0x1, 0xae, 0x833f, 0x0, 0xa00) at _printf+0x4c
_extent_print(0xf0279000, 0xf0279fe0, 0x67b, 0xf0279e70, 0xf0279b10, 0xf0279e58
) at _extent_print+0x4c
_extent_free(0xf0271660, 0x673, 0x1, 0x10, 0x1, 0x0) at _extent_free+0x1e0
_uvm_swap_free(0x674, 0x1, 0x10, 0x8340, 0x12, 0x15a5) at _uvm_swap_free+0x68
_uvmpd_scan_inactive(0xdd, 0xf0166c00, 0x0, 0xf1d91d78, 0x0, 0x200) at _uvmpd_s
can_inactive+0x3c8
_uvmpd_scan(0x53, 0x55, 0x379, 0x0, 0xffffffff, 0x3) at _uvmpd_scan+0xec
_uvm_pageout(0x0, 0x11, 0xf004efa0, 0x0, 0xf0143000, 0xf1d87000) at _uvm_pageou
t+0x17c
_start_pagedaemon(0x0, 0x200, 0xf0007988, 0xf01602f0, 0xf1d89564, 0xf0002000) a
t _start_pagedaemon+0x4
_proc_trampoline(0x0, 0x0, 0x0, 0x0, 0x0, 0x0) at _proc_trampoline
db>

Startup Messages for this machine:
SPARCclassic, No Keyboard
ROM Rev. 2.12, 16 MB memory installed, Serial #7713118.
Ethernet address 8:0:20:75:b1:5e, Host ID: 8075b15e.


Rebooting with command:
Boot device: /iommu/sbus/espdma@4,8400000/esp@4,8800000/sd@3,0   File and args:
>How-To-Repeat:
su to root
cd ${PackageSourceRootDir}/*/swig
make install

>Fix:
Unknown by me.
>Audit-Trail:
>Unformatted:
>> NetBSD/sparc Secondary Boot, Revision 1.8
>> (pk@flambard, Sat May  8 21:54:06 MEST 1999)
Booting netbsd @ 0x4000
1261568+87480+151844+[67872+69430]=0x193f3a
OBP version 3, revision 2.12 (plugin rev 2)
pmap_bootstrap: installing kernel page tables...done.
[ preserving 137308 bytes of netbsd a.out symbol table ]
console is ttya
Copyright (c) 1996, 1997, 1998, 1999
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 1.4 (RUMPOLE) #4: Mon May 24 07:56:55 EDT 1999
    root@rumpole:/usr/src/sys/arch/sparc/compile/RUMPOLE
real mem = 16461824
avail mem = 13221888
using 200 buffers containing 819200 bytes of memory
bootpath: /iommu@0,10000000/sbus@0,10001000/espdma@4,8400000/esp@4,8800000/sd@3,0
mainbus0 (root): SUNW,SPARCclassic
cpu0 at mainbus0: TMS390S10 @ 50 MHz, on-chip FPU
cpu0: physical 4K instruction (32 b/l), 2K data (16 b/l): cache enabled
obio0 at mainbus0
clock0 at obio0 slot 0 offset 0x200000: mk48t08 (eeprom)
timer0 at obio0 slot 0 offset 0xd00000 delay constant 23
zs0 at obio0 slot 0 offset 0x100000 level 12 softpri 6
zstty0 at zs0 channel 0 (console)
zstty1 at zs0 channel 1
zs1 at obio0 slot 0 offset 0x0 level 12 softpri 6
kbd0 at zs1 channel 0
ms0 at zs1 channel 1
slavioconfig at obio0 slot 0 offset 0x800000 not configured
auxreg0 at obio0 slot 0 offset 0x900000
power0 at obio0 slot 0 offset 0x910000 level 2
fdc0 at obio0 slot 0 offset 0x400000 level 11 softpri 4: chip 82077
iommu0 at mainbus0 addr 0x10000000: version 0x1/0x4, page-size 4096, range 64MB
sbus0 at iommu0: clock = 25 MHz
dma0 at sbus0 slot 4 offset 0x8400000: rev 2
esp0 at dma0 slot 4 offset 0x8800000 level 4: ESP200, 40MHz, SCSI ID 7
scsibus0 at esp0: 8 targets, 8 luns per target
probe(esp0:3:0): max sync rate 10.00Mb/s
sd0 at scsibus0 targ 3 lun 0: <CONNER, CP30540  SUN0535, B0CD> SCSI2 0/direct fixed
sd0: 517MB, 2242 cyl, 6 head, 78 sec, 512 bytes/sect x 1059528 sectors
audioamd0 at sbus0 slot 4 offset 0x1300000 level 7 (ipl 13) softpri 4
audio0 at audioamd0: full duplex
SUNW,bpp at sbus0 slot 4 offset 0xc800000 level 2 (ipl 3) not configured
ledma0 at sbus0 slot 4 offset 0x8400010: rev 2
le0 at ledma0 slot 4 offset 0x8c00000 level 6: address 08:00:20:75:b1:5e
le0: 8 receive buffers, 2 transmit buffers
cgthree0 at sbus0 slot 3 offset 0x0 level 9: , 1152 x 900
root on sd0a dumps on sd0b