Subject: Re: isp driver issues in SMP on NetBSD (fwd)
To: Matthew Jacob <>
From: Greg A. Woods <>
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 <>
Planix, Inc. <>          Secrets of the Weird <>