Lost interrupts on SMP systems

Peter Trifonov pvtrifonov at mail.ru
Fri Jan 14 23:59:34 PST 2005


Hello John,
On Friday 14 January 2005 22:18, John Baldwin wrote:

Among those bug reports the followup submitted by cguthrie at clubphoto.co 
(http://www.freebsd.org/cgi/query-pr.cgi?pr=i386/40274)
looks like the most close one to my situation.
> > > I've gone ahead and committed the fix for the MPTable global
> > > entries btw.  I don't think there is a routing or edge/level
> > > problem though because the devices do work until you do a
> > > ping flood.  One thing we can try is that Linux has a
> >
> > IMPORTANT: I can do flood ping over either of them without any problems
> > (at least, if the system is booted with -p -v, I don't know why).
> > They break down ONLY if flood ping is SIMULTANEOUSLY  performed over both
> > of them.
Another observation: doing simultaneous flood ping over xl0 AND xl1, xl0 AND 
xl2 also causes xl1 or xl2 respectively (but not both of them) to say 
"watchdog timeout". In both cases they can be fixed by doing 
ifconfig xl1 down
ifconfig xl2 down
ifconfig xl1 up
ifconfig xl2 up
i.e. even if flood ping has not been done over xl2, it still has to be brought 
down& up.

xl0 works fine in all cases. 
flood ping over just one interface (either of them) always works fine.

> More interrupt load that way, which would indicate maybe the bug Linux
> tries to work around except that your intpins are edge triggered. :(
Just a guess:
Maybe also there is some kind of race condition in the interrupt handling 
system, so that if too many interrupts are coming from different sources, 
some of them are not properly processed? However, this should be somehow 
related to IRQ sharing.

>
> I've included a little test program below that you can run as root to do
> arbitrary port reads (inb).  Please compile it and mail me the output of:
>
> inb 0x4d0
> inb 0x4d1
Here is what it says:
# ./inb 0x4d0
inb(0x4d0) = 0x0 = 0d = '^@'
# ./inb 0x4d1
inb(0x4d1) = 0xe = 14d = '^N'



PS: I had to revert the first  patch because it requres me to be near the 
console during the boot process in order to type boot -p -v. Moreover, during 
such boot the system sometimes hangs.  mptable patch is still installed. 

-- 
With best regards,
P. Trifonov



More information about the freebsd-smp mailing list