Lost interrupts on SMP systems

John Baldwin jhb at FreeBSD.org
Mon Jan 10 14:18:30 PST 2005


On Saturday 08 January 2005 03:54 am, Peter Trifonov wrote:
> Hello John,
>
> > Ok, try this patch instead then, it should make the 'ignoring
> > global interrupt entry' messages go away:
> >
> > --- //depot/vendor/freebsd/src/sys/i386/i386/mptable.c
> > 2004/09/24 18:45:28
> > +++ //depot/user/jhb/acpipci/i386/i386/mptable.c
> > +		if (mptable_nioapics == 1) {
> > +			apic_id = 0;
> > +			while (ioapics[apic_id] == NULL)
> > +				apic_id++;
> > +		} else {
> > +			printf(
> > +			"MPTable: Ignoring global interrupt
> > entry for pin %d\n",
> > +			    intr->dst_apic_int);
> > +			return;
> > +		}
> >  	}
> >  	if (intr->dst_apic_id >= NAPICID) {
> >  		printf("MPTable: Ignoring interrupt entry for
> > ioapic%d\n",
>
> After reverting your previous patch and recompiling the kernel with the new
> one "Ignoring global interrupt
> entry for pin" messages have changed to "Ignoring interrupt entry for
> ioapic255".
> It seems to me that your forgot to change
> if (intr->dst_apic_id >= NAPICID)
> to
> if (apic_id >= NAPICID)
>
> Changing this caused "ignoring interrupt" messages to disappear.
> However, this does not seem to be related to the NIC timeout problem.
> Doing flood ping over both interfaces sharing IRQ 11 still causes them to
> say "xl*: watchdog timeout" and stop working.
> The only way to revive them is to bring both of them down& up.

Ok.  What if you apply both patches, does that do better?  (Your fix was 
correct btw, so just apply the previous patch to what you have now.)

-- 
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-smp mailing list