kern/91410: Promise SATA controller + striping : "SETFEATURES SET TRANSFER MODE semaphore timeout"

John McLaughlin mail2jmcl at gmail.com
Fri Jan 6 10:30:06 PST 2006


>Number:         91410
>Category:       kern
>Synopsis:       Promise SATA controller + striping : "SETFEATURES SET TRANSFER MODE semaphore timeout"
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jan 06 18:30:04 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     John McLaughlin
>Release:        6.0-R
>Organization:
>Environment:
FreeBSD jmcl.shadowbox.ie 6.0-STABLE FreeBSD 6.0-STABLE #0: Fri Jan  6 13:35:01 GMT 2006     root at jmcl.shadowbox.ie:/usr/obj/usr/src/sys/JMCL  i386

>Description:
              I upgraded to 6.0 from 4.11 last week on an old Dell Poweredge 1300 dual processor P III server, as I wanted to install a SATA controller and two drives ( 250Gb WD Caviar).

The controller is a Promise TX2Plus SATAII 150, which uses the PDC20575 chipset.

The system also has two SCSI disks hanging off the onboard controller, which i'm using for the OS

I want to configure the disks as a RAID 0 array, so used gstripe as outlined in the handbook to create the array using the commands:

# kldload geom_stripe.ko
# gstripe label -v st0 /dev/ad4 /dev/ad6
# bsdlabel -wB /dev/stripe/st0
# newfs -U /dev/stripe/st0a

I was able to mount and write to the array. I then tried copying a large file across the network from my Linux laptop (using scp and coming in over the fxp0 interface). and after a couple of minutes got the following:

ad6: req=0xc1213960 SETFEATURES SET TRANSFER MODE semaphore timeout !! DANGER Will Robinson !!

I was running a make -j 4 buildworld at the same time, so the system was fairly loaded, so I rebooted (hard reset was necessary) and tried with nothing else running with the same outcome.

I looked at the mailing list archives and couldn't find much that was useful, other than a suggestion to set polling on fxp0, and that it was something that might turn up due to undiscovered bugs in the new ATA code. 

I also tried changing the card to a different PCI slot, but if anything that only made the problem worse as the error happened when booted into single user mode to fsck the array.

After finally getting the CVSUPed code built and installed, I rebooted, and after a few second, before I had a chance to try the polling, the system fell over with no activity of any kind happening

As a matter of interest, I decided to reconfigure the disks back into 2 separate disks, and the problem disappeared. Even while stressing the net connections and writing to both disks, so the problem seems to be related to module geom_stripe. Also, the write speed is higher to a single disk, than it was to the array.

The output from pciconf is:

agp0 at pci0:0:0:  class=0x060000 card=0x008e1028 chip=0x71908086 rev=0x03 hdr=0x00    vendor   = 'Intel Corporation'
    device   = '82443BX/ZX 440BX/ZX CPU to PCI Bridge (AGP Implemented)'
    class    = bridge
    subclass = HOST-PCI
pcib1 at pci0:1:0: class=0x060400 card=0x00000000 chip=0x71918086 rev=0x03 hdr=0x01    vendor   = 'Intel Corporation'
    device   = '82443BX/ZX 440BX/ZX AGPset PCI-to-PCI bridge'
    class    = bridge
    subclass = PCI-PCI
pcib2 at pci0:2:0: class=0x060400 card=0x000000dc chip=0x00241011 rev=0x03 hdr=0x01    vendor   = 'Digital Equipment Corporation'
    device   = '21151/2 PCI to PCI Bridge'
    class    = bridge
    subclass = PCI-PCI
isab0 at pci0:7:0: class=0x060100 card=0x00000000 chip=0x71108086 rev=0x02 hdr=0x00    vendor   = 'Intel Corporation'
    device   = '82371AB/EB/MB PIIX4/4E/4M ISA Bridge'
    class    = bridge
    subclass = PCI-ISA
atapci1 at pci0:7:1:       class=0x010180 card=0x00000000 chip=0x71118086 rev=0x01
hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82371AB/EB/MB PIIX4/4E/4M IDE Controller'
    class    = mass storage
    subclass = ATA
uhci0 at pci0:7:2: class=0x0c0300 card=0x00000000 chip=0x71128086 rev=0x01 hdr=0x00    vendor   = 'Intel Corporation'
    device   = '82371AB/EB/MB PIIX4/4E/4M USB Interface'
    class    = serial bus
    subclass = USB
piix0 at pci0:7:3: class=0x068000 card=0x00000000 chip=0x71138086 rev=0x02 hdr=0x00    vendor   = 'Intel Corporation'
    device   = '82371AB/EB/MB PIIX4/4E/4M Power Management Controller'
    class    = bridge
xl0 at pci0:13:0:  class=0x020000 card=0x905510b7 chip=0x905510b7 rev=0x24 hdr=0x00    vendor   = '3COM Corp, Networking Division'
    device   = '3C905B-TX Fast Etherlink 10/100 PCI TX NIC'
    class    = network
    subclass = ethernet
re0 at pci0:14:0:  class=0x020000 card=0x434e1371 chip=0x816910ec rev=0x10 hdr=0x00    vendor   = 'Realtek Semiconductor'
    device   = 'RTL8169 Gigabit Ethernet Adapter'
    class    = network
    subclass = ethernet
fxp0 at pci0:16:0: class=0x020000 card=0x100c8086 chip=0x12298086 rev=0x08 hdr=0x00    vendor   = 'Intel Corporation'
    device   = '82550/1/7/8/9 EtherExpress PRO/100(B) Ethernet Adapter'
    class    = network
    subclass = ethernet
drm0 at pci0:17:0: class=0x030000 card=0x0036121a chip=0x0005121a rev=0x01 hdr=0x00    vendor   = '3dfx Interactive Inc'
    device   = 'Voodoo3 All Voodoo3 chips, 3000'
    class    = display
    subclass = VGA
none0 at pci1:0:0: class=0x030000 card=0x008e1028 chip=0x47571002 rev=0x7a hdr=0x00    vendor   = 'ATI Technologies Inc'
    device   = 'Rage 3D IIC AGP (BGA Package)'
    class    = display
    subclass = VGA
atapci0 at pci2:9:0:       class=0x018000 card=0x3d75105a chip=0x3d75105a rev=0x02
hdr=0x00
    vendor   = 'Promise Technology Inc'
    class    = mass storage
ahc0 at pci2:11:0: class=0x010000 card=0x000f9005 chip=0x001f9005 rev=0x01 hdr=0x00    vendor   = 'Adaptec Inc'
    device   = 'AHA-2940U2/AHA-2940U2W AIC-7890/1 Ultra2 SCSI Controller'
    class    = mass storage
    subclass = SCSI


             dmesg output is:

Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD 6.0-RELEASE #3: Thu Jan  5 10:30:19 GMT 2006
    root at jmcl.shadowbox.ie:/usr/src/sys/i386/compile/JMCL
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Pentium III/Pentium III Xeon/Celeron (498.47-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x673  Stepping = 3
  Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
real memory  = 134209536 (127 MB)
avail memory = 125845504 (120 MB)
MPTable: <DELL     POWEREDGE 8E>
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): APIC ID:  1
 cpu1 (AP): APIC ID:  0
ioapic0: Changing APIC ID to 2
ioapic0: Assuming intbase of 0
ioapic0 <Version 1.1> irqs 0-23 on motherboard
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
cpu0 on motherboard
cpu1 on motherboard
pcib0: <MPTable Host-PCI bridge> pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
agp0: <Intel 82443BX (440 BX) host to PCI bridge> mem 0xec000000-0xefffffff at device 0.0 on pci0
pcib1: <MPTable PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
pcib2: <MPTable PCI-PCI bridge> at device 2.0 on pci0
pci2: <PCI bus> on pcib2
xl0: <3Com 3c905B-TX Fast Etherlink XL> port 0xdc80-0xdcff mem 0xf9fffc00-0xf9fffc7f irq 21 at device 9.0 on pci2
miibus0: <MII bus> on xl0
xlphy0: <3Com internal media interface> on miibus0
xlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
xl0: Ethernet address: 00:10:5a:be:20:b8
ahc0: <Adaptec aic7890/91 Ultra2 SCSI adapter> port 0xd800-0xd8ff mem 0xf9ffe000-0xf9ffefff irq 16 at device 11.0 on pci2
ahc0: [GIANT-LOCKED]
aic7890/91: Ultra2 Wide Channel A, SCSI Id=7, 32/253 SCBs
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 UDMA33 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xffa0-0xffaf at device 7.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0xcce0-0xccff irq 19 at device 7.2 on pci0
uhci0: [GIANT-LOCKED]
usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
piix0: <PIIX Timecounter> port 0x850-0x85f at device 7.3 on pci0
Timecounter "PIIX" frequency 3579545 Hz quality 0
atapci1: <Promise PDC20575 SATA150 controller> port 0xcc00-0xcc7f,0xc800-0xc8ff
mem 0xfe121000-0xfe121fff,0xfe100000-0xfe11ffff irq 17 at device 13.0 on pci0
ata2: <ATA channel 0> on atapci1
ata3: <ATA channel 1> on atapci1
ata4: <ATA channel 2> on atapci1
re0: <RealTek 8110S Single-chip Gigabit Ethernet> port 0xc400-0xc4ff mem 0xfe122000-0xfe1220ff irq 18 at device 14.0 on pci0
miibus1: <MII bus> on re0
rgephy0: <RTL8169S/8110S media interface> on miibus1
rgephy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX, 1000baseTX-FDX, auto
re0: Ethernet address: 00:08:a1:2e:12:8f
fxp0: <Intel 82559 Pro/100 Ethernet> port 0xcc80-0xccbf mem 0xfe120000-0xfe120fff,0xfe000000-0xfe0fffff irq 19 at device 16.0 on pci0
miibus2: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> on miibus2
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: Ethernet address: 00:90:27:dc:65:be
drm0: <3dfx Voodoo3 3000> port 0xc000-0xc0ff mem 0xf6000000-0xf7ffffff,0xf0000000-0xf1ffffff irq 20 at device 17.0 on pci0
info: [drm] Initialized tdfx 1.0.0 20010216 on minor 0
pmtimer0 on isa0
orm0: <ISA Option ROMs> at iomem 0xc0000-0xc7fff,0xc8000-0xccfff,0xd0000-0xd4fff on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model IntelliMouse, device ID 3
fdc0: <Enhanced floppy controller> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0fdc0: [FAST]
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/8 bytes threshold
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
unknown: <PNP0c01> can't assign resources (memory)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0401> can't assign resources (port)
unknown: <PNP0700> can't assign resources (port)
unknown: <PNP0f13> can't assign resources (irq)
unknown: <PNP0303> can't assign resources (port)
Timecounters tick every 1.000 msec
ipfw2 (+ipv6) initialized, divert loadable, rule-based forwarding disabled, default to accept, logging unlimited
Waiting 5 seconds for SCSI devices to settle
acd0: CDRW <HL-DT-ST GCE-8160B/2.08> at ata1-master PIO4
ad4: 238475MB <WDC WD2500KS-00MJB0 02.01C03> at ata2-master SATA150
ad6: 238475MB <WDC WD2500KS-00MJB0 02.01C03> at ata3-master SATA150
GEOM_STRIPE: Device st0 created (id=2159043801).
GEOM_STRIPE: Disk ad4 attached to st0.
GEOM_STRIPE: Disk ad6 attached to st0.
GEOM_STRIPE: Device st0 activated.
da1 at ahc0 bus 0 target 4 lun 0
da1: <QUANTUM ATLAS V 18 WLS 0201> Fixed Direct Access SCSI-3 device
da1: 80.000MB/s transfers (40.000MHz, offset 63, 16bit), Tagged Queueing Enabledda1: 17366MB (35566499 512 byte sectors: 255H 63S/T 2213C)
SMP: AP CPU #1 Launched!
da0 at ahc0 bus 0 target 0 lun 0
da0: <IBM DNES-309170W SA60> Fixed Direct Access SCSI-3 device
da0: 80.000MB/s transfers (40.000MHz, offset 31, 16bit), Tagged Queueing Enabled
da0: 8683MB (17783301 512 byte sectors: 255H 63S/T 1106C)
Trying to mount root from ufs:/dev/da0s1a
ad6: req=0xc1213960 SETFEATURES SET TRANSFER MODE semaphore timeout !! DANGER Will Robinson !!
ad6: req=0xc1213960 SETFEATURES SET TRANSFER MODE semaphore timeout !! DANGER Will Robinson !!
ad6: req=0xc1213960 SETFEATURES SET TRANSFER MODE semaphore timeout !! DANGER Will Robinson !!
:
fxp0: device timeout
:
etc, etc.....

         My kernel config is:

machine         i386
cpu             I686_CPU
ident           JMCL

# To statically compile in device wiring instead of /boot/device.hints
#hints          "GENERIC.hints"         # Default places to look for devices.

makeoptions     DEBUG=-g                # Build kernel with gdb(1) debug symbols
options         SMP
#options        SCHED_ULE               # ULE scheduler
options         SCHED_4BSD              # 4BSD scheduler
options         PREEMPTION              # Enable kernel thread preemption
options         INET                    # InterNETworking
#options        INET6                   # IPv6 communications protocols
options         FFS                     # Berkeley Fast Filesystem
options         SOFTUPDATES             # Enable FFS soft updates support
options         UFS_ACL                 # Support for access control lists
options         UFS_DIRHASH             # Improve performance on big directoriesoptions         MD_ROOT                 # MD is a potential root device
options         NFSCLIENT               # Network Filesystem Client
options         NFSSERVER               # Network Filesystem Server
options         NFS_ROOT                # NFS usable as /, requires NFSCLIENT
options         MSDOSFS                 # MSDOS Filesystem
options         CD9660                  # ISO 9660 Filesystem
options         PROCFS                  # Process filesystem (requires PSEUDOFS)options         PSEUDOFS                # Pseudo-filesystem framework
options         GEOM_GPT                # GUID Partition Tables.
options         COMPAT_43               # Compatible with BSD 4.3 [KEEP THIS!]
options         COMPAT_FREEBSD4         # Compatible with FreeBSD4
options         COMPAT_FREEBSD5         # Compatible with FreeBSD5
options         SCSI_DELAY=5000         # Delay (in ms) before probing SCSI
options         KTRACE                  # ktrace(1) support
options         SYSVSHM                 # SYSV-style shared memory
options         SYSVMSG                 # SYSV-style message queues
options         SYSVSEM                 # SYSV-style semaphores
options         _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev
options         AHC_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~128k to driver.
options         AHD_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~215k to driver.
options         ADAPTIVE_GIANT          # Giant mutex is adaptive.

# Firewall options
options    IPFIREWALL
options    IPFIREWALL_VERBOSE
#options    IPFIREWALL_VERBOSE_LIMIT=5
options    IPFIREWALL_DEFAULT_TO_ACCEPT
options    IPDIVERT # NAT

# Enable device polling
options    DEVICE_POLLING
options    HZ=1000

device          apic                    # I/O APIC

device          drm             # DRM core module required by DRM drivers
device          tdfxdrm         # 3dfx Voodoo 3/4/5 and Banshee

# Bus support.
device          eisa
device          pci

# Floppy drives
device          fdc

# ATA and ATAPI devices
device          ata
device          atadisk         # ATA disk drives
device          ataraid         # ATA RAID drives
device          atapicd         # ATAPI CDROM drives
device          atapifd         # ATAPI floppy drives
device          atapist         # ATAPI tape drives
options         ATA_STATIC_ID   # Static device numbering

# SCSI Controllers
device          ahc             # AHA2940 and onboard AIC7xxx devices

# SCSI peripherals
device          scbus           # SCSI bus (required for SCSI)
device          ch              # SCSI media changers
device          da              # Direct Access (disks)
device          sa              # Sequential Access (tape etc)
device          cd              # CD
device          pass            # Passthrough device (direct SCSI access)
device          ses             # SCSI Environmental Services (and SAF-TE)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device          atkbdc          # AT keyboard controller
device          atkbd           # AT keyboard
device          psm             # PS/2 mouse

device          vga             # VGA video card driver

device          splash          # Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device          sc

device          agp             # support several AGP chipsets

# Power management support (see NOTES for more options)
#device         apm
# Add suspend/resume support for the i8254.
device          pmtimer

# Serial (COM) ports
device          sio             # 8250, 16[45]50 based serial ports

# Parallel port
device          ppc
device          ppbus           # Parallel port bus (required)
device          lpt             # Printer
device          plip            # TCP/IP over parallel
device          ppi             # Parallel port interface device
#device         vpo             # Requires scbus and da

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device          miibus          # MII buss support
device          fxp             # Intel EtherExpress PRO/100B (82557, 82558)
device          re              # RealTek 8139C+/8169/8169S/8110S
device          xl              # 3Com 3c90x (``Boomerang'', ``Cyclone'')

# Pseudo devices.
device          loop            # Network loopback
device          random          # Entropy device
device          ether           # Ethernet support
device          sl              # Kernel SLIP
device          ppp             # Kernel PPP
device          tun             # Packet tunnel.
device          pty             # Pseudo-ttys (telnet etc)
device          md              # Memory "disks"
device          gif             # IPv6 and IPv4 tunneling
device          faith           # IPv6-to-IPv4 relaying (translation)

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device          bpf             # Berkeley packet filter


# USB support
device          uhci            # UHCI PCI->USB interface
device          ohci            # OHCI PCI->USB interface
device          ehci            # EHCI PCI->USB interface (USB 2.0)
device          usb             # USB Bus (required)
#device         udbp            # USB Double Bulk Pipe devices
device          ugen            # Generic
device          uhid            # "Human Interface Devices"
device          ukbd            # Keyboard
device          ulpt            # Printer
device          umass           # Disks/Mass storage - Requires scbus and da
device          ums             # Mouse
device          urio            # Diamond Rio 500 MP3 player
device          uscanner        # Scanners

          I'd like to be able to get the disks up and running striped, but can hold off for a while if I can help resolve this. 

John

>How-To-Repeat:
              Enable GEOM striping on the disks, and perform some file system activity at the same time as some network activity
>Fix:
              
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list