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