Subject: Re: isp driver issues in SMP on NetBSD (fwd)
To: Matthew Jacob <mjacob44@yahoo.com>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-smp
Date: 11/16/2004 15:15:36
On Mon, Nov 15, 2004 at 01:36:55PM -0800, Matthew Jacob wrote:
> 
> Well, in this case something does seem to be getting stuck and even
> polled commands are timing out... Dunno what the story is. Maybe it
> *is* and SMP issue- I haven't been working with NetBSD for some months
> so I really don't know.

I saw problems much like this with not just isp but also i2o and mly
cards in a number of SMP x86 systems.  The common feature was that all
these drivers use threads.

Ultimately, all the problems went away when platform-specific interrupt
routing issues were resolved.  These often only affect MP configurations
because MP makes interrupt routing on i386 far more complicated and
exposes bugs both in our code and in hardware vendors' PCIBIOS, MPBIOS,
and ACPI implementations.  The problems are particularly likely to
occur in the presence of PCI-PCI bridges on cards that are, themselves,
on buses behind bridges... which is actually a not uncommon case when
you have a RAID controller (which often presents its main function
_behind_ an integrated PCI-PCI bridge) on a system with many PCI buses,
some of which are often themselves visibly bridged from bus 0.

The original poster might want to experiment with different combinations
of the MPBIOS and MPACPI options for finding and fixing-up PCI interrupt
routing.  For simplicity's sake, treat MPBIOS and MPACPI as mutually
exclusive options when building kernel config files...