Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jun 2000 16:28:58 +0200 (CEST)
From:      thz@Lennartz-electronic.de
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/19579: ahc/aic7892: SCSI timeouts with heavy writes
Message-ID:  <200006291428.QAA03096@mezcal.tue.le>

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

>Number:         19579
>Category:       kern
>Synopsis:       ahc/aic7892: SCSI timeouts with heavy writes
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jun 29 07:40:05 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Thomas Zenker
>Release:        FreeBSD 4.0-STABLE i386
>Organization:
Lennartz-electronic
>Environment:

brandnew SUPER PIIIDM3 motherboard with onboard aic7892 SCSI controller.

Copyright (c) 1992-2000 The FreeBSD Project.
Copyright (c) 1982, 1986, 1989, 1991, 1993
	The Regents of the University of California. All rights reserved.
FreeBSD 4.0-STABLE #2: Wed Jun 14 08:21:34 CEST 2000
    thz@swd2.tue.le:/usr/src/sys/compile/SWD2
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 599713928 Hz
CPU: Pentium III/Pentium III Xeon (599.71-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x681  Stepping = 1
  Features=0x387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,PN,MMX,FXSR,XMM>
real memory  = 268304384 (262016K bytes)
avail memory = 257912832 (251868K bytes)
Preloaded elf kernel "kernel" at 0xc0307000.
Pentium Pro MTRR support enabled
md0: Malloc disk
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib1: <PCI to PCI bridge (vendor=8086 device=1a23)> at device 1.0 on pci0
pci4: <PCI bus> on pcib1
pci4: <ATI Mach64-GZ graphics accelerator> at 0.0 irq 11
pcib2: <PCI to PCI bridge (vendor=8086 device=1a24)> at device 2.0 on pci0
pci2: <PCI bus> on pcib2
pcib3: <PCI to PCI bridge (vendor=8086 device=1360)> at device 31.0 on pci2
pci3: <PCI bus> on pcib3
pci3: <unknown card> (vendor=0x8086, dev=0x1161) at 0.0
ahc0: <Adaptec aic7892 Ultra160 SCSI adapter> port 0xb800-0xb8ff mem 0xff7ff000-0xff7fffff irq 10 at device 4.0 on pci3
ahc0: aic7892 Wide Channel A, SCSI Id=7, 16/255 SCBs
pcib4: <Intel 82801AA (ICH) Hub to PCI bridge> at device 30.0 on pci0
pci1: <PCI bus> on pcib4
fxp0: <Intel EtherExpress Pro 10/100B Ethernet> port 0xaf00-0xaf3f mem 0xff500000-0xff5fffff,0xff6ff000-0xff6fffff irq 11 at device 8.0 on pci1
fxp0: Ethernet address 00:30:48:10:3d:19
isab0: <Intel 82801AA (ICH) PCI to LPC bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH ATA66 controller> at device 31.1 on pci0
atapci0: Busmastering DMA not enabled
pci0: <unknown card> (vendor=0x8086, dev=0x2413) at 31.3 irq 9
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x200>
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
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode
ppi0: <Parallel I/O> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
plip0: <PLIP network interface> on ppbus0
Waiting 15 seconds for SCSI devices to settle
Mounting root from ufs:/dev/da0s1a
da0 at ahc0 bus 0 target 0 lun 0
da0: <SEAGATE ST39236LW 0004> Fixed Direct Access SCSI-3 device 
da0: 80.000MB/s transfers (40.000MHz, offset 31, 16bit), Tagged Queueing Enabled
da0: 8761MB (17942584 512 byte sectors: 255H 63S/T 1116C)
cd0 at ahc0 bus 0 target 6 lun 0
cd0: <PLEXTOR CD-ROM PX-40TS 1.10> Removable CD-ROM SCSI-2 device 
cd0: 20.000MB/s transfers (20.000MHz, offset 15)

>Description:

	During heavy writes appear timeout messages from ahc driver (see below).
	The driver will never recover and falls from one timeout to the next
	one until pack gets invalidated.

	Changing drives with known good ones does NOT help
	(even different type/vendor)

	Changing cables/terminators with known good ones does NOT help

	Drive and cables work fine on an ASUS P2B-S with aic7890 controller.

	Disabling writeback cache in the drive does NOT help

	The problem shows up ONLY for fast massive writes. The disk
	can be read with dd if=/dev/da0s1 of=/dev/null without
	problems.  During the time of last write on scsi-bus and
	the timeout, the disk seems to stay selected: the activity
	led on the drive stays on until it gets the BDR from ahc
	driver.

	timeouts disappear with:
	- disabling tagged queuing
	- disabling processor caching or changing it to writethru in BIOS
	  (really to slow down the processor)

	See also to compare:  PR misc/18786, PR i386/19226

Driver messages:

(da0:ahc0:0:0:0): SCB 0x2c - timed out while idle, SEQADDR == 0xa
(da0:ahc0:0:0:0): Queuing a BDR SCB
(da0:ahc0:0:0:0): SCB 0x2c - timed out in Data-out phase, SEQADDR == 0x167
(da0:ahc0:0:0:0): no longer in timeout, status = 34b
ahc0: Issued Channel A Bus Reset. 49 SCBs aborted
(da0:ahc0:0:0:0): SCB 0x2c - timed out while idle, SEQADDR == 0x9
(da0:ahc0:0:0:0): Queuing a BDR SCB
(da0:ahc0:0:0:0): Bus Device Reset Message Sent
(da0:ahc0:0:0:0): no longer in timeout, status = 34b
ahc0: Bus Device Reset on A:0. 48 SCBs aborted
ahc0:A:0: ahc_intr - referenced scb not valid during seqint 0x71 scb(14)
ahc0: WARNING no command for scb 14 (cmdcmplt)
QOUTPOS = 113
(da0:ahc0:0:0:0): SCB 0x2c - timed out while idle, SEQADDR == 0xa
(da0:ahc0:0:0:0): Queuing a BDR SCB
(da0:ahc0:0:0:0): Bus Device Reset Message Sent
(da0:ahc0:0:0:0): no longer in timeout, status = 34b
ahc0: Bus Device Reset on A:0. 15 SCBs aborted
ahc0:A:0: ahc_intr - referenced scb not valid during seqint 0x71 scb(14)
ahc0: WARNING no command for scb 14 (cmdcmplt)
QOUTPOS = 188
...
Invalidating pack
...
devstat_end_transaction: HELP!! busy_count for da0 if < 0
...


>How-To-Repeat:

	- iozone 300
	- dd if=/dev/zero of=testfile count=10000b

>Fix:

	Workaround:
	disabling tagged queuing eliminates the problem at the cost of
	dropping the write performance.


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


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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