Subject: port-sparc/10098: si driver crash
To: None <gnats-bugs@gnats.netbsd.org>
From: None <jarle@runit.no>
List: netbsd-bugs
Date: 05/11/2000 07:24:14
>Number:         10098
>Category:       port-sparc
>Synopsis:       si driver crash
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-sparc-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu May 11 07:25:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Jarle Greipsland
>Release:        2000-05-09<NetBSD-current source date>
>Organization:
	
>Environment:
	
System: NetBSD anker.runit.no 1.4Y NetBSD 1.4Y (GENERIC.MP) #0: Tue May 9 17:22:48 CEST 2000 jarle@anker.runit.no:/usr/src/sys/arch/sparc/compile/GENERIC.MP sparc

>Description:

The si driver for sparc systems seems quite unstable.  My attempts at
using an Exabyte tape drive hooked up to the SCSI controller have led to
frequent crashes.  Granted, I've modified the si_match function so that
also Sun4m systems will be allowed to detect the presence of an si
adapter.

Some data:

o The configuration file used for the system is GENERIC.MP.

o The dmesg output is (some angle brackets removed):

#0 ok boot
Boot device: /iommu/sbus/dma@f,81000/esp@f,80000/sd@3,0   File and args: 
>How-To-Repeat:

	
>Fix:
	
>Release-Note:
>Audit-Trail:
>Unformatted:
 >> NetBSD/sparc Secondary Boot, Revision 1.9
 >> (pk@sam, Tue Apr 11 19:44:58 MEST 2000)
 Booting netbsd
 1687172+104468+182156 [68+103440+81816]=0x21f3d8
 entry: 0x4000, bootinfo: 0x2233d8
 bootinfo[0]=0x2237d8; bootinfo[1]=0x2233e0
 nsym=0x1, ssym=0x1f5e28, esym=0x2233d8
 OBP version 3, revision 2.5 (plugin rev 2)
 [ preserving 185776 bytes of netbsd ELF symbol table ]
 Copyright (c) 1996, 1997, 1998, 1999, 2000
     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.4Y (ANKER) #1: Thu May 11 14:20:54 CEST 2000
     jarle@anker.runit.no:/usr/src/sys/arch/sparc/compile/ANKER
 total memory = 127 MB
 avail memory = 115 MB
 using 896 buffers containing 6632 KB of memory
 bootpath: /iommu0/sbus0/dma@f,81000/esp@f,80000/sd@3,0
 mainbus0 (root): SUNW,Sun 4/600
 cpu0 at mainbus0: mid 8: CY7C601/605 (v.c) @ 40 MHz, RT602 or WTL3171 FPU
 cpu0: 64K byte write-back, 32 bytes/line, sw flush: cache enabled
 cpu1 at mainbus0: mid 9: CY7C601/605 (v.c) @ 40 MHz, RT602 or WTL3171 FPU
 cpu1: 64K byte write-back, 32 bytes/line, sw flush: cache enabled
 obio0 at mainbus0
 clock0 at obio0 slot 0 offset 0x200000: mk48t08 (eeprom)
 timer0 at obio0 slot 0 offset 0x300000 delay constant 18
 zs0 at obio0 slot 0 offset 0x100000 level 12 softpri 6
 zstty0 at zs0 channel 0 (console i/o)
 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
 audio at obio0 slot 0 offset 0x500000 level 13 not configured
 leds at obio0 slot 0 offset 0x600000 not configured
 iommu0 at mainbus0 ioaddr 0xe0000000: version 0x1/0x0, page-size 4096, range 64MB
 sbus0 at iommu0: clock = 20 MHz
 dma0 at sbus0 slot 15 offset 0x81000: rev esc
 esp0 at dma0 slot 15 offset 0x80000 level 4: ESP200, 25MHz, SCSI ID 7
 scsibus0 at esp0: 8 targets, 8 luns per target
 lebuffer0 at sbus0 slot 15 offset 0x40000: 128K memory
 le0 at lebuffer0 slot 15 offset 0x60000 level 6: address 08:00:20:0e:f7:94
 le0: 64 receive buffers, 16 transmit buffers
 cgsix0 at sbus0 slot 0 offset 0x0 level 9: SUNW,501-1672, 1152 x 900, rev 6
 cgsix0: attached to /dev/fb
 sparcvme0 at iommu0: version 0x0
 vme0 at sparcvme0
 si0 at vme0 addr 200000 irq 2 vector 40
 si0: options=1 DMA
 scsibus1 at si0: 8 targets, 8 luns per target
 eccmemctl0 at mainbus0: version 0x0/0x0
 scsibus0: waiting 2 seconds for devices to settle...
 probe(esp0:0:0): max sync rate 6.25MB/s
 sd0 at scsibus0 target 0 lun 0: MICROP, 1908-15MZ1064013, AZ2E SCSI2 0/direct fixed
 sd0: 1317 MB, 2112 cyl, 15 head, 85 sec, 512 bytes/sect x 2698061 sectors
 probe(esp0:1:0): max sync rate 6.25MB/s
 sd1 at scsibus0 target 1 lun 0: MICROP, 2210-09MQ1001901, HQ30 SCSI2 0/direct fixed
 sd1: 1008 MB, 2372 cyl, 9 head, 96 sec, 512 bytes/sect x 2065250 sectors
 probe(esp0:2:0): max sync rate 6.25MB/s
 sd2 at scsibus0 target 2 lun 0: SEAGATE, ST32155N, 0532 SCSI2 0/direct fixed
 sd2: 2049 MB, 4177 cyl, 8 head, 125 sec, 512 bytes/sect x 4197405 sectors
 probe(esp0:3:0): max sync rate 6.25MB/s
 sd3 at scsibus0 target 3 lun 0: SEAGATE, ST12550N, 0014 SCSI2 0/direct fixed
 sd3: 2040 MB, 2708 cyl, 19 head, 81 sec, 512 bytes/sect x 4178874 sectors
 scsibus1: waiting 2 seconds for devices to settle...
 st0 at scsibus1 target 5 lun 0: EXABYTE, EXB-8200, 4.25 SCSI1 1/sequential removable
 st0: drive empty
 
 o The panic and trace messages are:
 Async registers (mid 9): afsr=0 AFA=0; afva=0x00
 Async registers (mid 8): afsr=0 AFA=0; afva=0x00
 NMI: system interrupts: 8000002 VME=2,SBUS=0,V
 VME error:
         AFSR a6800000 ME,ERR,WB,SZ=2
         address: 0xa6800000ff800000
 pool scxspl: putting with none out
 panic: pool_put
 Stopped in tar at       cpu_Debugger+0x4:       jmpl            [%o7 + 0x8], %g0
 
 (cpu 0)db> trace
 _pool_put(0xf01f3918, 0xf061b000, 0xf0193ef0, 0xa2, 0x0, 0x0) at _pool_put+0xa0
 scsipi_free_xs(0xf061b000, 0x809, 0x0, 0xf061b08e, 0xf01f5d40, 0x0) at scsipi_fr
 ee_xs+0x74
 scsi_scsipi_cmd(0x0, 0xf061b000, 0x6, 0xf4f1a000, 0x2800, 0x0) at scsi_scsipi_cm
 d+0x180
 ststart(0xf061de00, 0x1c0010, 0xf062d018, 0x3, 0x1, 0x1000) at ststart+0x288
 ststrategy(0xf062d000, 0x0, 0x2800, 0x3, 0x0, 0x0) at ststrategy+0x140
 physio(0x0, 0xf062d000, 0x2800, 0x100000, 0xf014c454, 0xf4f0be28) at physio+0x27
 8
 stread(0x1201, 0xf4f0be28, 0x0, 0x2d0, 0xf0143270, 0x1) at stread+0x4c
 spec_read(0xf4f0bd98, 0x2c, 0xf01e5800, 0xf0600500, 0xf0068fc8, 0x0) at spec_rea
 d+0xe0
 ufsspec_read(0xf4f0bd98, 0x2c, 0xf0600200, 0xf011041c, 0x7b000, 0x5) at ufsspec_
 read+0x48
 vn_read(0x0, 0xf4d819c0, 0xf4f0be28, 0xf0643c80, 0x1, 0xf0064eb4) at vn_read+0xc
 0
 dofileread(0xf4efa648, 0x3, 0xf4d819a0, 0x2800, 0x2800, 0xf4d819c0) at dofilerea
 d+0x88
 sys_read(0xf4efa648, 0xf4f0bf28, 0xf4f0bf20, 0xf0040044, 0xf0446ba0, 0x0) at sys
 _read+0x90
 syscall(0x3, 0xf4f0bfb0, 0x0, 0x4, 0x0, 0x0) at syscall+0x1f4
 _syscall(0x3, 0x7b000, 0x2800, 0x11400081, 0xe0000000, 0x5) at _syscall+0xb8
 
 I can probably dig up more information on request.