Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Sep 2003 09:43:48 -0700
From:      John Mechalas <seagull@aracnet.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   i386/57097: Promise Ultra 100 TX2 causes lockup on SMP kernels
Message-ID:  <200309221643.h8MGhmD5000328@onyx.spiritone.com>
Resent-Message-ID: <200309221650.h8MGoMQp086452@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         57097
>Category:       i386
>Synopsis:       Promise Ultra 100 TX2 causes lockup on SMP kernels
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    freebsd-i386
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Sep 22 09:50:22 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     John Mechalas
>Release:        FreeBSD 5.1-RELEASE i386
>Organization:
<organization of PR author (multiple lines)>
>Environment:
System: FreeBSD medley 5.1-RELEASE FreeBSD 5.1-RELEASE #4: Mon Sep 22 09:10:15 PDT 2003 root@medley:/usr/src/sys/i386/compile/MEDLEY i386

This system is an L440GX+ with two P-III processors.  Boot log is attached
(though note that I had to recompile the kernel for single-proc operation
to file this report).  Configuration in this case is boot disk on channel
1 of the promise I/O card and a secondary disk on the on-board PII4X
controller.  No other IDE devices are connected.

The only kernel options that I include for SMP are:

  #options SMP
  #options APIC_IO

Boot messages (when configured for single proc operation):

    kernel: root@medley:/usr/src/sys/i386/compile/MEDLEY
    kernel: Preloaded elf kernel "/boot/kernel/kernel" at 0xc0443000.
    kernel: Timecounter "i8254"  frequency 1193182 Hz
    kernel: Timecounter "TSC"  frequency 696410200 Hz
    kernel: CPU: Intel Pentium III (696.41-MHz 686-class CPU)
    kernel: Origin = "GenuineIntel"  Id = 0x683  Stepping = 3
    kernel: Features=0x387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,PN,MMX,FXSR,SSE>
    kernel: real memory  = 268369920 (255 MB)
    kernel: avail memory = 256004096 (244 MB)
    kernel: Pentium Pro MTRR support enabled
    kernel: npx0: <math processor> on motherboard
    kernel: npx0: INT 16 interface
    kernel: pcibios: BIOS version 2.10
    kernel: Using $PIR table, 12 entries at 0xc00fdf00
    kernel: pcib0: <Intel 82443GX host to PCI bridge> at pcibus 0 on motherboard
    kernel: pci0: <PCI bus> on pcib0
    kernel: agp0: <Intel 82443GX host to PCI bridge> mem 0xf8000000-0xfbffffff at device 0.0 on pci0
    kernel: pcib1: <PCIBIOS PCI-PCI bridge> at device 1.0 on pci0
    kernel: pci1: <PCI bus> on pcib1
    kernel: pcib2: <PCI-PCI bridge> at device 15.0 on pci1
    kernel: pci2: <PCI bus> on pcib2
    kernel: atapci0: <Promise PDC20268 UDMA100 controller> port 0x1050-0x105f,0x10d0-0x10d3,0x10d8-0x10df,0x10d4-0x10d7,0x10e0-0x10e7 mem 0xf4000000-0xf4003fff irq 11 at device 11.0 on pci0
    kernel: ata2: at 0x10e0 on atapci0
    kernel: ata3: at 0x10d8 on atapci0
    kernel: ahc0: <Adaptec aic7896/97 Ultra2 SCSI adapter> port 0x1400-0x14ff mem 0xf4004000-0xf4004fff irq 5 at device 12.0 on pci0
    kernel: aic7896/97: Ultra2 Wide Channel A, SCSI Id=7, 32/253 SCBs
    kernel: ahc1: <Adaptec aic7896/97 Ultra2 SCSI adapter> port 0x1800-0x18ff mem 0xf4005000-0xf4005fff irq 5 at device 12.1 on pci0
    kernel: aic7896/97: Ultra2 Wide Channel B, SCSI Id=7, 32/253 SCBs
    kernel: puc0: <US Robotics (3Com) 3CP5609 PCI 16550 Modem> port 0x10e8-0x10ef irq 4 at device 13.0 on pci0
    kernel: sio0: type 16550A
    kernel: sio0: unable to activate interrupt in fast mode - using normal mode
    kernel: pci0: <network, ethernet> at device 14.0 (no driver attached)
    kernel: pcib3: <PCI-PCI bridge> at device 16.0 on pci0
    kernel: pci3: <PCI bus> on pcib3
    kernel: de0: <Digital 21140A Fast Ethernet> port 0x2000-0x207f mem 0xf4200000-0xf420007f irq 10 at device 4.0 on pci3
    kernel: de0: ZNYX ZX34X 21140A [10-100Mb/s] pass 2.2
    kernel: de0: address 00:c0:95:e0:79:2c
    kernel: de1: <Digital 21140A Fast Ethernet> port 0x2080-0x20ff mem 0xf4200400-0xf420047f irq 11 at device 5.0 on pci3
    kernel: de1: ZNYX ZX34X 21140A [10-100Mb/s] pass 2.2
    kernel: de1: address 00:c0:95:e0:79:2d
    kernel: de2: <Digital 21140A Fast Ethernet> port 0x2400-0x247f mem 0xf4200800-0xf420087f irq 11 at device 6.0 on pci3
    kernel: de2: ZNYX ZX34X 21140A [10-100Mb/s] pass 2.2
    kernel: de2: address 00:c0:95:e0:79:2e
    kernel: de3: <Digital 21140A Fast Ethernet> port 0x2480-0x24ff mem 0xf4200c00-0xf4200c7f irq 11 at device 7.0 on pci3
    kernel: de3: ZNYX ZX34X 21140A [10-100Mb/s] pass 2.2
    kernel: de3: address 00:c0:95:e0:79:2f
    kernel: isab0: <PCI-ISA bridge> at device 18.0 on pci0
    kernel: isa0: <ISA bus> on isab0
    kernel: atapci1: <Intel PIIX4 UDMA33 controller> port 0x10c0-0x10cf at device 18.1 on pci0
    kernel: ata0: at 0x1f0 irq 14 on atapci1
    kernel: ata1: at 0x170 irq 15 on atapci1
    kernel: uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0x1060-0x107f irq 11 at device 18.2 on pci0
    kernel: usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0
    kernel: usb0: USB revision 1.0
    kernel: uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
    kernel: uhub0: 2 ports with 2 removable, self powered
    kernel: pci0: <bridge, PCI-unknown> at device 18.3 (no driver attached)
    kernel: pci0: <display, VGA> at device 20.0 (no driver attached)
    kernel: orm0: <Option ROMs> at iomem 0xca800-0xcafff,0xc8000-0xca7ff,0xc0000-0xc7fff on isa0
    kernel: pmtimer0 on isa0
    kernel: atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
    kernel: atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
    kernel: kbd0 at atkbd0
    kernel: psm0: <PS/2 Mouse> irq 12 on atkbdc0
    kernel: psm0: model Generic PS/2 mouse, device ID 0
    kernel: ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
    kernel: ppc0: Generic chipset (ECP/PS2/NIBBLE) in COMPATIBLE mode
    kernel: ppc0: FIFO with 16/16/8 bytes threshold
    kernel: ppbus0: <Parallel port bus> on ppc0
    kernel: lpt0: <Printer> on ppbus0
    kernel: lpt0: Interrupt-driven port
    kernel: ppi0: <Parallel I/O> on ppbus0
    kernel: sc0: <System console> at flags 0x100 on isa0
    kernel: sc0: VGA <16 virtual consoles, flags=0x300>
    kernel: sio1 at port 0x2f8-0x2ff irq 3 on isa0
    kernel: sio1: type 16550A
    kernel: vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
    kernel: unknown: <PNP0303> can't assign resources (port)
    kernel: unknown: <PNP0c02> can't assign resources (port)
    kernel: unknown: <PNP0f13> can't assign resources (irq)
    kernel: unknown: <PNP0501> can't assign resources (port)
    kernel: unknown: <PNP0401> can't assign resources (port)
    kernel: Timecounters tick every 10.000 msec
    kernel: ipfw2 initialized, divert enabled, rule-based forwarding enabled, default to deny, logging limited to 100 packets/entry by default
    kernel: ad2: 78167MB <Maxtor 98196H8> [158816/16/63] at ata1-master UDMA33
    kernel: ad4: 38166MB <WDC WD400EB-75CPF0> [77545/16/63] at ata2-master UDMA100
    kernel: Waiting 2 seconds for SCSI devices to settle
    kernel: de0: enabling 100baseTX port
    kernel: Mounting root from ufs:/dev/ad4s1a
    kernel: de1: autosense failed: cable problem?
    kernel: de2: autosense failed: cable problem?
    kernel: de3: autosense failed: cable problem?
    kernel: de1: enabling 100baseTX port

Additional output when configured for/booting SMP:
    
    Programming 24 pins in IOAPIC #0
    IOAPIC #0 intpin 2 -> irq 0
    FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
    cpu0 (BSP): apic id:  1, version: 0x00040011, at 0xfee00000
    cpu1 (AP):  apic id:  0, version: 0x00040011, at 0xfee00000
    io0 (APIC): apic id:  2, version: 0x00170011, at 0xfec00000
    APIC_IO: Testing 8254 interrupt delivery
    APIC_IO: routing 8254 via IOAPIC #0 intpin 2
    SMP: AP CPU #1 Launched!

>Description:

   When operating in SMP mode using a Promise Ulta 100 TX2 IDE controller,
   the system locks up under heavy I/O load (running a dump on a
   filesystem will do it) and generated the following message:

     ad4: READ commnad timeout tag=0 serv=0 - resetting
     ata2: resetting devices

   At this point, a forced reboot is necessary.  This only happens in
   SMP mode.  When the kernel is built without SMP support, it
   functions normally.

   Note that this occurs no matter what the device configuration
   seems to be.  In this case, I have a single drive (the boot drive)
   on the I/O card and a second drive on the on-board IDE controller.
   I have also encountered this problem with both drives on the
   same channel on the I/O card, and with one drive on either
   channel on the I/O card.  It also occurs with no devices attached
   to the on-board controller.  Only devices on the Promise card get
   impacted.

   I filed this report once before, and it was closed out by someone
   the next day with "There are no known issues with the Promise
   Ultra 100 TX2 card".  That may be true, but there does seem to be
   a problem with SMP operation and the TX2 card.  I'd like someone
   to at least pretend this is a real problem before closing it out
   with a blowoff "it must be a hardware issue" response.
	
>How-To-Repeat:
	
   Boot an SMP kernel with a disk attached to a Promise Ultra 100
   TX2 I/O card and do a dump of a filesystem on that disk,

>Fix:

   Current workaround is to disable SMP support in the kernel.  :P
   Either that, or remove the I/O card and go back to the on-board
   controller.  :P~~

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200309221643.h8MGhmD5000328>