I was using this SCSI card to talk to a loaned tape library. I was
having flakiness where very other reboot the kernel would not report the
tape drives and instead would report two uk SCSI devices. I changed a
terminator and suddenly it would always notice the tape drives, but the
"chio status" command would hang and never return.
Forcing a reboot caused a kernel panic as the kernel loaded. Even the
library was clearly in an inconsistent state (it mentioned it couldn't
talk to the drive the changer hardware was hung off of). However, I
wouldn't think the kernel should panic, even if things aren't quite right.
I've since moved the card into an amd64 box and everything works
swimmingly. The card is a PCI-X card which I had in the Ultra 45
because it was the only hardware I still had with PCI-X slots. The new
box just has regular PCI, but the cards are still compatible. But I
wanted to include that detail.
Below I include the kernel boot/dmesg leading up to the crash along with
the trace and ps. ddb mentions doing a "mach ddbcpu <#>", but when I
tried that it told me I had issued an invalid command.
--Kurt
..>> OpenBSD BOOT 1.4
Trying bsd...
Booting /pci@1e,600000/pci@0/pci@9/pci@0/scsi@1/disk@0,0:a/bsd
6605424@0x1000000+5520@0x164ca70+173400@0x1800000+4020904@0x182a558
symbols @ 0xfea7e2c0 81+405456+255993 start=0x1000000
[ using 662248 bytes of bsd ELF symbol table ]
console is /ebus@1f,464000/serial@2,80
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
Copyright (c) 1995-2012 OpenBSD. All rights reserved.
http://www.OpenBSD.org
OpenBSD 5.2 (GENERIC.MP) #236: Mon Jul 30 16:38:18 MDT 2012
[email protected]:/usr/src/sys/arch/sparc64/compile/GENERIC.MP
real mem = 2147483648 (2048MB)
avail mem = 2100412416 (2003MB)
mainbus0 at root: Sun Ultra 45 Workstation
cpu0 at mainbus0: SUNW,UltraSPARC-IIIi (rev 3.4) @ 1600 MHz
cpu0: physical 32K instruction (32 b/l), 64K data (32 b/l), 1024K
external (64 b
/l)
cpu1 at mainbus0: SUNW,UltraSPARC-IIIi (rev 3.4) @ 1600 MHz
cpu1: physical 32K instruction (32 b/l), 64K data (32 b/l), 1024K
external (64 b
/l)
"memory-controller" at mainbus0 not configured
"memory-controller" at mainbus0 not configured
pyro0 at mainbus0: "Fire", rev 3, ign 780, bus A 2 to 12
pyro0: dvma map c0000000-ffffffff
pci0 at pyro0
ppb0 at pci0 dev 0 function 0 "PLX PEX 8532" rev 0xaa
pci1 at ppb0 bus 3
ppb1 at pci1 dev 1 function 0 "PLX PEX 8532" rev 0xaa
pci2 at ppb1 bus 4
ppb2 at pci2 dev 0 function 0 "Acer Labs M5249 PCI-PCI" rev 0x00
pci3 at ppb2 bus 5
ohci0 at pci3 dev 28 function 0 "Acer Labs M5237 USB" rev 0x03: ivec
0x780, vers
ion 1.0, legacy support
ohci1 at pci3 dev 28 function 1 "Acer Labs M5237 USB" rev 0x03: ivec
0x780, vers
ion 1.0, legacy support
ohci2 at pci3 dev 28 function 2 "Acer Labs M5237 USB" rev 0x03: ivec
0x780, vers
ion 1.0, legacy support
ehci0 at pci3 dev 28 function 3 "Acer Labs M5239 USB2" rev 0x01: ivec 0x781
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Acer Labs EHCI root hub" rev 2.00/1.00 addr 1
auacer0 at pci3 dev 29 function 0 "Acer Labs M5455 Audio" rev 0x21: ivec
0x785
ac97: codec id 0x41445374 (Analog Devices AD1981B)
ac97: codec features headphone, 20 bit DAC, No 3D Stereo
audio0 at auacer0
alipm0 at pci3 dev 30 function 1 "Acer Labs M7101 Power" rev 0x00: can't
map i/o
space
pciide0 at pci3 dev 31 function 0 "Acer Labs M5229 UDMA IDE" rev 0xc8:
DMA, chan
nel 0 configured to native-PCI, channel 1 configured to native-PCI
pciide0: using ivec 0x784 for native-PCI interrupt
atapiscsi0 at pciide0 channel 0 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <MATSHITA, DVD-RAM UJ-845S, D100> ATAPI
5/cdrom re
movable
cd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
pciide0: channel 1 disabled (no drives)
usb1 at ohci0: USB revision 1.0
uhub1 at usb1 "Acer Labs OHCI root hub" rev 1.00/1.00 addr 1
usb2 at ohci1: USB revision 1.0
uhub2 at usb2 "Acer Labs OHCI root hub" rev 1.00/1.00 addr 1
usb3 at ohci2: USB revision 1.0
uhub3 at usb3 "Acer Labs OHCI root hub" rev 1.00/1.00 addr 1
ppb3 at pci1 dev 2 function 0 "PLX PEX 8532" rev 0xaa
pci4 at ppb3 bus 6
ppb4 at pci4 dev 0 function 0 "ServerWorks PCIE-PCIX" rev 0xb3
pci5 at ppb4 bus 7
bge0 at pci5 dev 4 function 0 "Broadcom BCM5715" rev 0xa2, BCM5715 A1
(0x9001):
ivec 0x796, address 00:14:4f:0e:72:9c
brgphy0 at bge0 phy 1: BCM5714 10/100/1000baseT/SX PHY, rev. 0
bge1 at pci5 dev 4 function 1 "Broadcom BCM5715" rev 0xa2, BCM5715 A1
(0x9001):
ivec 0x797, address 00:14:4f:0e:72:9d
brgphy1 at bge1 phy 1: BCM5714 10/100/1000baseT/SX PHY, rev. 0
ppb5 at pci1 dev 3 function 0 "PLX PEX 8532" rev 0xaa: msi
pci6 at ppb5 bus 8
ppb6 at pci1 dev 8 function 0 "PLX PEX 8532" rev 0xaa: msi
pci7 at ppb6 bus 9
ppb7 at pci1 dev 9 function 0 "PLX PEX 8532" rev 0xaa
pci8 at ppb7 bus 10
ppb8 at pci8 dev 0 function 0 "Intel 41210 PCIE-PCIX" rev 0x09
pci9 at ppb8 bus 11
mpi0 at pci9 dev 1 function 0 "Symbios Logic SAS1064" rev 0x02: msi
scsibus1 at mpi0: 63 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, HITACHI HDS7225S, A94A> SCSI3
0/direct fixed
naa.5000cca20bdac5d8
sd0: 238471MB, 512 bytes/sector, 488390625 sectors
sd1 at scsibus1 targ 1 lun 0: <ATA, HITACHI HDS7225S, A94A> SCSI3
0/direct fixed
naa.5000cca20bd9d069
sd1: 238471MB, 512 bytes/sector, 488390625 sectors
ppb9 at pci8 dev 0 function 2 "Intel 41210 PCIE-PCIX" rev 0x09
pci10 at ppb9 bus 12
mpi1 at pci10 dev 1 function 0 "Symbios Logic 53c1030" rev 0x08: msi
scsibus2 at mpi1: 16 targets, initiator 7
mpi2 at pci10 dev 1 function 1 "Symbios Logic 53c1030" rev 0x08: msi
scsibus3 at mpi2: 16 targets, initiator 7
mpi2: timeout
mpi2: timeout
mpi2: timeout
panic: iommu_dvmamap_load: map still in use
kdb breakpoint at 146de20
Stopped at Debugger+0x4: nop
iommu_dvmamap_load(1, 4000c030000, 40002391800, 4000c030000, 24, 0) at
iommu_dv
mamap_load+0x394
mpi_load_xs(400022d1750, 400258cbc1e, ffffffffffffffff, 19899ba5, 0,
f00) at mp
i_load_xs+0x78
mpi_scsi_cmd(400258cbc00, 400022d1750, 0, f, f005bca4, 400022c8824) at
mpi_scsi
_cmd+0x1b8
scsi_xs_exec(4000c032000, 400022d1750, 23, 1c07ec0, 90077f, deafbeef) at
scsi_x
s_exec+0x2c
scsi_xs_sync(4000c032000, 2020202020202020, fffffffffffffff8,
2020202000000000,
4000c030024, 400022c8988) at scsi_xs_sync+0x64
scsi_inquire(10, 4000c030000, 4000c032000, fffffffffff3c6b8, 100, 0) at
scsi_in
quire+0x88
scsi_probedev(16, 1, 0, 1541a18, 20, 0) at scsi_probedev+0xf0
scsi_probe_target(4000205ea80, 1, 180e000, 0, 0, 4) at
scsi_probe_target+0x14
scsi_probe_bus(4000205ea80, 4000205ea80, 400022c8848, 1c082bc, 1,
40001f576e0) a
t scsi_probe_bus+0x1c
config_attach(4000205ea80, 1805ab0, 1c08398, 1475040, f005bca4,
400022c8988) at
config_attach+0x1f0
RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC!
IF RUNNING SMP, USE 'mach ddbcpu <#>' AND 'trace' ON OTHER PROCESSORS, TOO.
DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!
ddb{0}>
ddb{0}> trace
iommu_dvmamap_load(1, 4000c030000, 40002391800, 4000c030000, 24, 0) at
iommu_dv
mamap_load+0x394
mpi_load_xs(400022d1750, 400258cbc1e, ffffffffffffffff, 19899ba5, 0,
f00) at mp
i_load_xs+0x78
mpi_scsi_cmd(400258cbc00, 400022d1750, 0, f, f005bca4, 400022c8824) at
mpi_scsi
_cmd+0x1b8
scsi_xs_exec(4000c032000, 400022d1750, 23, 1c07ec0, 90077f, deafbeef) at
scsi_x
s_exec+0x2c
scsi_xs_sync(4000c032000, 2020202020202020, fffffffffffffff8,
2020202000000000,
4000c030024, 400022c8988) at scsi_xs_sync+0x64
scsi_inquire(10, 4000c030000, 4000c032000, fffffffffff3c6b8, 100, 0) at
scsi_in
quire+0x88
scsi_probedev(16, 1, 0, 1541a18, 20, 0) at scsi_probedev+0xf0
scsi_probe_target(4000205ea80, 1, 180e000, 0, 0, 4) at
scsi_probe_target+0x14
scsi_probe_bus(4000205ea80, 4000205ea80, 400022c8848, 1c082bc, 1,
40001f576e0) a
t scsi_probe_bus+0x1c
config_attach(4000205ea80, 1805ab0, 1c08398, 1475040, f005bca4,
400022c8988) at
config_attach+0x1f0
mpi_attach(400022c8800, 1567b70, 400022c8954, 4, 400022c8800,
400022c8824) at m
pi_attach+0x4c0
mpi_pci_attach(40002204200, 400022c8800, fffffffff002a0b0, 2300042,
4000205ec00
, 1) at mpi_pci_attach+0x18c
config_attach(400022c8800, 18040e0, 1c08610, 138ac20, 80, 0) at
config_attach+0
x1f0
pci_probe_device(40002204200, f00ea724000c0900, 28, 4000205ec18, 1,
1563d70) at
pci_probe_device+0x398
sparc64_pci_enumerate_bus(40002204200, 0, 16144f0, 40002204224, 0,
1563d70) at s
parc64_pci_enumerate_bus+0x2fc
config_attach(40002204200, 1803e40, 1c08968, 13c7800, 40002043d80,
40002074c50)
at config_attach+0x1f0
ppbattach(4000205a500, 40002074c00, 1c08b60, 100047, 4000205ee80, 1) at
ppbatta
ch+0x334
config_attach(40002074c00, 1804268, 1c08b60, 138ac20, 80, 0) at
config_attach+0
x1f0
pci_probe_device(4000205a500, f00dd14c000a0200, 18, 4000205ee88, 1,
1563d70) at
pci_probe_device+0x398
sparc64_pci_enumerate_bus(4000205a500, 0, 16144f0, 4000205a524, 0,
1563d70) at s
parc64_pci_enumerate_bus+0x2fc
config_attach(4000205a500, 1803e40, 1c08eb8, 13c7800, 40002043d80,
40002075c50)
at config_attach+0x1f0
ppbattach(40001f5b800, 40002075c00, 1c090b0, 100047, 4000205fb00, 1) at
ppbatta
ch+0x334
config_attach(40002075c00, 1804268, 1c090b0, 138ac20, 80, 0) at
config_attach+0
x1f0
pci_probe_device(40001f5b800, f00cd71800034800, 18, 4000205fb08, 1,
1563d70) at
pci_probe_device+0x398
sparc64_pci_enumerate_bus(40001f5b800, 0, 16144f0, 40001f5b824, 0,
1563d70) at s
parc64_pci_enumerate_bus+0x2fc
config_attach(40001f5b800, 1803e40, 1c09408, 13c7800, 40002043d80,
40002047c50)
at config_attach+0x1f0
ppbattach(40001f5b900, 40002047c00, 1c09600, 100047, 40002043c80, 1) at
ppbatta
ch+0x334
config_attach(40002047c00, 1804268, 1c09600, 138ac20, 80, 0) at
config_attach+0
x1f0
pci_probe_device(40001f5b900, f0097c7400020000, 18, 40002043c88, 1,
1563d70) at
pci_probe_device+0x398
sparc64_pci_enumerate_bus(40001f5b900, 0, 16144f0, 40001f5b924, 0,
1563d70) at s
parc64_pci_enumerate_bus+0x2fc
config_attach(40001f5b900, 1803e40, 1c09950, 1434aa0, 40001f58800,
1434ac0) at c
onfig_attach+0x1f0
pyro_init(40001f5be00, 1, 1c09b58, 8, 10, 0) at pyro_init+0x2dc
config_attach(40001f5be00, 1804f88, 1c09b58, 145bd80, 1c09b78, 0) at
config_att
ach+0x1f0
getpropstring(0, 40002043f80, 1887b70, 1400, 1822cd0, 1563d70) at
getpropstring
+0x920
config_attach(40002043f80, 1802908, 0, 0, 18c9b00, 40) at
config_attach+0x1f0
cpu_configure(180e168, 64, 0, ffffffffffffe000, 1, 1) at cpu_configure+0x2a8
main(0, 117f960, 18, f005bca4, f005bca4, 1801010) at main+0x468
print_dtlb(100000, 1580, 1000000, fff21b30, 18, 10b428) at print_dtlb+0x158
ddb{0}> ps
PID PPID PGRP UID S FLAGS WAIT COMMAND
* 0 -1 0 0 7 0x200 swapper
ddb{0}>