From owner-freebsd-bugs Thu Jun 29 7:40:17 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 6673337BE38 for ; Thu, 29 Jun 2000 07:40:05 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id HAA10020; Thu, 29 Jun 2000 07:40:05 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from smtp.www-service.de (smtp.www-service.de [212.77.161.16]) by hub.freebsd.org (Postfix) with SMTP id 8017C37BDC9 for ; Thu, 29 Jun 2000 07:31:50 -0700 (PDT) (envelope-from thz@Lennartz-electronic.de) Received: (qmail 31724 invoked from network); 29 Jun 2000 14:31:45 -0000 Received: from p3e9e1221.dip.t-dialin.net (HELO fw.tue.le) (62.158.18.33) by smtp.www-service.de with SMTP; 29 Jun 2000 14:31:45 -0000 Received: from mezcal.tue.le (mezcal.tue.le [192.168.201.20]) by fw.tue.le (8.8.8/8.8.8) with ESMTP id QAA00888 for ; Thu, 29 Jun 2000 16:28:58 +0200 (CEST) (envelope-from thz@mezcal.tue.le) Received: (from thz@localhost) by mezcal.tue.le (8.9.3/8.9.3) id QAA03096; Thu, 29 Jun 2000 16:28:58 +0200 (CEST) (envelope-from thz) Message-Id: <200006291428.QAA03096@mezcal.tue.le> Date: Thu, 29 Jun 2000 16:28:58 +0200 (CEST) From: thz@Lennartz-electronic.de Reply-To: thz@Lennartz-electronic.de To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: kern/19579: ahc/aic7892: SCSI timeouts with heavy writes Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >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 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: on motherboard npx0: INT 16 interface pcib0: on motherboard pci0: on pcib0 pcib1: at device 1.0 on pci0 pci4: on pcib1 pci4: at 0.0 irq 11 pcib2: at device 2.0 on pci0 pci2: on pcib2 pcib3: at device 31.0 on pci2 pci3: on pcib3 pci3: (vendor=0x8086, dev=0x1161) at 0.0 ahc0: 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: at device 30.0 on pci0 pci1: on pcib4 fxp0: 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: at device 31.0 on pci0 isa0: on isab0 atapci0: at device 31.1 on pci0 atapci0: Busmastering DMA not enabled pci0: (vendor=0x8086, dev=0x2413) at 31.3 irq 9 fdc0: 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: at port 0x60,0x64 on isa0 atkbd0: irq 1 on atkbdc0 vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: 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: at port 0x378-0x37f irq 7 on isa0 ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode ppi0: on ppbus0 lpt0: on ppbus0 lpt0: Interrupt-driven port plip0: 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: 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: 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