i386/126866: isp(4) - kernel panic on card initialization
Ross
westr at connection.ca
Tue Aug 26 20:20:03 UTC 2008
>Number: 126866
>Category: i386
>Synopsis: isp(4) - kernel panic on card initialization
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-i386
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Aug 26 20:20:02 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Ross
>Release: Freebsd 7.0
>Organization:
>Environment:
FreeBSD <servername> 7.0-RELEASE-p3 FreeBSD 7.0-RELEASE-p3 #22: Tue Aug 26 13:18:24 EDT 2008 <servername>:/usr/obj/usr/src/sys/BL460C i386
>Description:
isp(4) driver can crash the kernel with a fatal trap 12/Page fault upon initialization of the driver - this is generally evident in a boot-off-SAN configuration where the card is already active upon boot.
Debugging shows the last outputted message as "isp1: Port Database Changed: freeze simq (loopdown)" [line 288 in isp_freebsd.c]. Further added debugging shows that the function isp_freeze_loopdown() will never return, pointing the problem most likely being with the line 'xpt_freeze_simq(isp->isp_sim, 1);' [line 290 in isp_freebsd.c]
Normal startup/activation of the driver will occur about 50% of the time, which seems to point to the driver receiving a FC command/notification before it's ready for it.
-= Normal successful startup: [hint.isp.0.debug = 0x11F]
..
Aug 26 15:45:16 controller kernel: isp0: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x4000-0x40ff mem 0xfdff0000-0xfdff3fff irq 18 at device 0.0 on pci16
Aug 26 15:45:16 controller kernel: isp0: set PCI latency to 64
Aug 26 15:45:16 controller kernel: isp0: [ITHREAD]
Aug 26 15:45:16 controller kernel: isp0: Board Type 2422, Chip Revision 0x2, resident F/W Revision 4.0.90
Aug 26 15:45:16 controller kernel: isp0: 2K Logins Supported
Aug 26 15:45:16 controller kernel: isp0: Last F/W revision was 4.0.90
Aug 26 15:45:16 controller kernel: isp0: 4096 max I/O command limit set
Aug 26 15:45:16 controller kernel: isp0: line 1207: markportdb
Aug 26 15:45:16 controller kernel: isp0: Starting Initial Loop Down Timer
Aug 26 15:45:16 controller kernel: isp1: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x4400-0x44ff mem 0xfdfe0000-0xfdfe3fff irq 19 at device 0.1 on pci16
Aug 26 15:45:16 controller kernel: isp1: set PCI latency to 64
Aug 26 15:45:16 controller kernel: isp1: [ITHREAD]
Aug 26 15:45:16 controller kernel: isp1: Board Type 2422, Chip Revision 0x2, resident F/W Revision 4.0.90
Aug 26 15:45:16 controller kernel: isp1: 2K Logins Supported
Aug 26 15:45:16 controller kernel: isp1: Last F/W revision was 4.0.90
Aug 26 15:45:16 controller kernel: isp1: 4096 max I/O command limit set
Aug 26 15:45:16 controller kernel: isp1: line 1207: markportdb
Aug 26 15:45:16 controller kernel: isp1: Starting Initial Loop Down Timer
..
-=
-= Failed startup
Aug 26 15:45:16 controller kernel: isp0: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x4000-0x40ff mem 0xfdff0000-0xfdff3fff irq 18 at device 0.0 on pci16
Aug 26 15:45:16 controller kernel: isp0: set PCI latency to 64
Aug 26 15:45:16 controller kernel: isp0: [ITHREAD]
Aug 26 15:45:16 controller kernel: isp0: Board Type 2422, Chip Revision 0x2, resident F/W Revision 4.0.90
Aug 26 15:45:16 controller kernel: isp0: 2K Logins Supported
Aug 26 15:45:16 controller kernel: isp0: Last F/W revision was 4.0.90
Aug 26 15:45:16 controller kernel: isp0: 4096 max I/O command limit set
Aug 26 15:45:16 controller kernel: isp0: line 1207: markportdb
Aug 26 15:45:16 controller kernel: isp0: Starting Initial Loop Down Timer
Aug 26 15:45:16 controller kernel: isp1: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x4400-0x44ff mem 0xfdfe0000-0xfdfe3fff irq 19 at device 0.1 on pci16
Aug 26 15:45:16 controller kernel: isp1: set PCI latency to 64
Aug 26 15:45:16 controller kernel: isp1: [ITHREAD]
Aug 26 15:45:16 controller kernel: isp1: line 5345: markportdb
Aug 26 15:45:16 controller kernel: isp1: Port Database Changed
Aug 26 15:45:16 controller kernel: isp1: Port Database Changed: freeze simq (loopdown)
[point of crash]
Fatal Trap 12: page fault while in kernel
fault code = Supervisor read, page not present
instruction pointer: 0x20 : 0xc0243a46
stack pointer: 0x20 : 0xc0af63cc
frame pointer: 0x20 : 0xc0af63cc
..
-=
>How-To-Repeat:
Reboot the box, and hope the FC command doesn't come down the pipe before the driver is fully initialized. :-)
>Fix:
none.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-i386
mailing list