Subject: Re: isp driver issues in SMP on NetBSD (fwd)
To: Matthew Jacob <mjacob44@yahoo.com>
From: Greg A. Woods <woods@planix.com>
List: tech-smp
Date: 11/16/2004 14:54:11
[ On Monday, November 15, 2004 at 13:36:55 (-0800), Matthew Jacob wrote: ]
> Subject: Re: isp driver issues in SMP on NetBSD (fwd)
>
> 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.
Just for the record the Alpha I'm using two QLA2340 cards on has four
CPUs and boots and runs fine with a NetBSD-1.6.x MP kernel, so if it's
an SMP issue then maybe it's only an issue on i386?
The interrupt problems on the alpha _seem_ to be unrelated to isp(4),
but the isp devices are the worst affected when any problems crop up
(same error message during probe and the boot never completes).
Getting rid of the worst-offending driver (ohci), and either getting rid
of the second worst (pciide), or not accessing the atapi CDROM attached
to it, seems to avoid any other issues (except the "bad execution
throttle of 0- using 16" warning). Accessing the atapi CDROM, if the
driver is present, causes the SCSI system disks on ahc0 to lock up too
though, and perhaps other things would be seen to be wonky too if I
could load the programs necessary to try them out. :-)
Of course I've not really hammered super-hard on the system yet -- just
a few simultaneous DDs and such...
FYI here's the first card with a PCI_CONFIG_DUMP kernel -- whole dmesg
on request:
isp0 at pci0 dev 3 function 0: PCI configuration registers:
Common header:
0x00: 0x23121077 0x02b00007 0x0c040002 0x0000f810
Vendor Name: Q Logic (0x1077)
Device ID: 0x2312
Command register: 0x0007
I/O space accesses: on
Memory space accesses: on
Bus mastering: on
Special cycles: off
MWI transactions: off
Palette snooping: off
Parity error checking: off
Address/data stepping: off
System error (SERR): off
Fast back-to-back transactions: off
Status register: 0x02b0
Capability List support: on
66 MHz capable: on
User Definable Features (UDF) support: off
Fast back-to-back capable: on
Data parity error detected: off
DEVSEL timing: medium (0x1)
Slave signaled Target Abort: off
Master received Target Abort: off
Master received Master Abort: off
Asserted System Error (SERR): off
Parity error detected: off
Class Name: serial bus (0x0c)
Subclass Name: Fiber Channel (0x04)
Interface: 0x00
Revision ID: 0x02
BIST: 0x00
Header Type: 0x00 (0x00)
Latency Timer: 0xf8
Cache Line Size: 0x10
Type 0 ("normal" device) header:
0x10: 0x00001301 0x020c3000 0x00000000 0x00000000
0x20: 0x00000000 0x00000000 0x00000000 0x01001077
0x30: 0x020a0000 0x00000044 0x00000000 0x00400110
Base address register at 0x10
type: 32-bit i/o
base: 0x00001300, size: 0x00000100
Base address register at 0x14
type: 32-bit nonprefetchable memory
base: 0x020c3000, size: 0x00001000
Base address register at 0x18
not implemented(?)
Base address register at 0x1c
not implemented(?)
Base address register at 0x20
not implemented(?)
Base address register at 0x24
not implemented(?)
Cardbus CIS Pointer: 0x00000000
Subsystem vendor ID: 0x1077
Subsystem ID: 0x0100
Expansion ROM Base Address: 0x020a0000
Capability list pointer: 0x44
Reserved @ 0x38: 0x00000000
Maximum Latency: 0x00
Minimum Grant: 0x40
Interrupt pin: 0x01 (pin A)
Interrupt line: 0x10
Capability register at 0x44
type: 0x01 (Power Management, rev. 1.0)
Capability register at 0x4c
type: 0x07 (PCI-X)
Capability register at 0x54
type: 0x05 (MBI)
Capability register at 0x64
type: 0x06 (CompactPCI Hot-swapping)
Device-dependent header:
0x40: 0x00000000 0x00024c01 0x00000000 0x00225407
0x50: 0x0963fff8 0x00866405 0x00000000 0x00000000
0x60: 0x00000000 0x00800006 0x00000000 0x00000000
0x70: 0x00000000 0x00000000 0x00000000 0x00000000
0x80: 0x00000000 0x00000000 0x00000000 0x00000000
0x90: 0x00000000 0x00000000 0x00000000 0x00000000
0xa0: 0x00000000 0x00000000 0x00000000 0x00000000
0xb0: 0x00000000 0x00000000 0x00000000 0x00000000
0xc0: 0x00000000 0x00000000 0x00000000 0x00000000
0xd0: 0x00000000 0x00000000 0x00000000 0x00000000
0xe0: 0x00000000 0x00000000 0x00000000 0x00000000
0xf0: 0x00000000 0x00000000 0x00000000 0x00000000
Don't know how to pretty-print device-dependent header.
Q Logic product 0x2312 (Fiber Channel serial bus, revision 0x02) at ? dev 3 function 0 (intrswiz 0, intrpin 0x1, i/o on, mem on, no quirks): QLogic Dual Port FC-AL and 2Gbps Fabric HBA
isp0: interrupting at dec 6600 irq 16
isp0: bad execution throttle of 0- using 16
--
Greg A. Woods
+1 416 218-0098 VE3TCP RoboHack <woods@robohack.ca>
Planix, Inc. <woods@planix.com> Secrets of the Weird <woods@weird.com>