Boot hangs on ips0: resetting adapter, this may take up to 5
minutes
Oleg Sharoiko
os at rsu.ru
Tue Mar 28 15:45:35 UTC 2006
On Mon, 27 Mar 2006, John Baldwin wrote:
JB>Which device is not getting interrupts and hanging? You said all your
JB>SCSI cards work fine with bge0 (IRQ16) is not in the kernel, yes? What
JB>if you disable just the devices on IRQ16 (bge and usb) do all of your
JB>various SCSI cards work fine in that case?
Yes, as soon as I remove bge from kernel all other devices work fine. I
couldn't figure out which particular device is mis-routed, because when
interrupt storm happens the system becomes unresponsive and it's
impossible to tell which devices work and which not.
I tried to track this with KTR, but I only made a trace for good case.
When I enabled KTR for interrupt storm case the behaviour changed and
I only get repeated clock interrupts - no storm on bge.
And interrupt storm only happens on single CPU when PREEMPTION is in
effect. Without PREEMPTION kernel with bge works. With SMP kernel I can
kldload if_bge when 2nd CPU has been already initialized, though I haven't
run many tests and this last setup is probably unstable.
By the way, shouldn't ithread_execute_handlers detect interrupt storm
condition? As I can see it has corresponding code, but in my case storm is
not detected.
BIOS has a page "PCI interrupt routing" which currently contains:
Planar USB IRQ [Auto Configure]
Current Interrupt Assigned 10
SCSI INTA IRQ [Auto Configure]
Current Interrupt Assigned 11
SCSI INTB IRQ [Auto Configure]
Current Interrupt Assigned 10
Planar Video IRQ [Auto Configure]
Current Interrupt Assigned 11
Planar Ethernet IRQ [Auto Configure]
Current Interrupt Assigned 11
Slot1 INTA IRQ [No IRQ reqested]
Current Interrupt Assigned No IRQ reqested
Slot2 INTA IRQ [No IRQ reqested]
Current Interrupt Assigned No IRQ reqested
Slot3 INTA IRQ [No IRQ reqested]
Current Interrupt Assigned No IRQ reqested
Slot4 INTA IRQ [Auto Configure]
Current Interrupt Assigned 11
Slot5 INTA IRQ [No IRQ reqested]
Current Interrupt Assigned No IRQ reqested
Slot6 INTA IRQ [No IRQ reqested]
Current Interrupt Assigned No IRQ reqested
In this menu SLOT4 INTA is linked with Ethernet and they change together
whenever I alter one of them.
I suppose, this values correspond to 'irq=' from dmesg output:
found-> vendor=0x14e4, dev=0x1659, revid=0x11
bus=1, slot=0, func=0
class=02-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0146, statreg=0x0010, cachelnsz=8 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=11
powerspec 2 supports D0 D3 current D0
MSI supports 8 messages, 64 bit
map[10]: type 1, range 64, base d0100000, size 16, enabled
pcib1: (null) requested memory range 0xd0100000-0xd010ffff: good
Dut I don't understand the next lines
pcib0: matched entry for 0.2.INTA
pcib0: slot 2 INTA hardwired to IRQ 16
pcib1: slot 0 INTA is routed to irq 16
What does 'hardwired' mean and why irq number is different.
I'm probably asking dumb questions, that's because I only know for sure
two things about interrupts: there 4 interrupt lines on PCI bus (A-D)
which devices use to trigger interrupts and there are interrupt handlers.
How signals from these lines are delivered to proper handlers, what is the
role of APICs and how these things work together - all this is covered by
darkness for me.
--
Oleg Sharoiko.
Software and Network Engineer
Computer Center of Rostov State University.
More information about the freebsd-scsi
mailing list