Boot hangs on ips0: resetting adapter,
this may take up to 5 minutes
John Baldwin
jhb at freebsd.org
Mon Apr 10 18:04:39 UTC 2006
On Thursday 06 April 2006 15:07, Oleg Sharoiko wrote:
> Hi, that's me again.
>
> John, I've got more information on my problem:
>
> It looks like the mis-routed interrupt is the one from ips. In my kernel
> ips is on vector 49 and bge is on vector 60. I've added
>
> if (vector == 60)
> vector = 49;
>
> to sys/amd64/amd64/local_apic.c and I have no more interrupt storm until
> bge really generates interrupt. Am I right with my conclusion about ips
> interrupt being mis-directed to bge?
Well, the vectors is the wrong thing to mess with as vector's are IDT
entries.
> There's also another interesting point: it looks like ips triggers
> interrupt on both vectors (49 and 60 - irq 28 and irq 16). Why do I think
> so?
This happens in several machines with Intel server chipsets due to a bug
in the PXH host bridges with no real workaround.
> 1. ips works fine even when there's no bge in kernel (I suppose irq 16 is
> not activated in this case). I suppose this should mean that interrupts
> are properly delivered to ips driver.
>
> 2. I've added debug printf to bge_intr and in single mode when preemption
> is disabled I see exact the same number of interrupts delivered to ips
> (checked counters with showintrcnt) and to bge (incorrectly delivered -
> bge is not in UP state and bge registers say "no interrupt").
>
> This seems really strange to me, how can this be possible? Is there any
> way to fix this?
One thing you can do w/o hacking the code is to reroute ips0 to IRQ 16.
Find the dmesg line for ips0, it should say something like:
ips0 <...> ... at device 4.0 on pci2
These numbers (4 from '4.0' and 2 from 'pci2') are the slot and bus
for ips0. We'll assume INTA is being used as single function cards
using INTA. Then, set a tunable like so in the loader to force ips0 to
use IRQ 16:
'set hw.pci2.4.INTA.irq=16'
This may not work for 6.0 but should work for 6.1 and later.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the freebsd-scsi
mailing list