Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Sep 2002 23:02:54 -0400 (EDT)
From:      Andriy Gapon <avg@excite.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/43217: ata: strange fallback to PIO mode
Message-ID:  <200209220302.g8M32sja000774@edge.foundation.invalid>

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

>Number:         43217
>Category:       kern
>Synopsis:       ata: strange fallback to PIO mode
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Sep 21 20:10:02 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Andriy Gapon
>Release:        FreeBSD 4.6.2-RELEASE-p2 i386
>Organization:
none
>Environment:
System: FreeBSD edge.foundation.invalid 4.6.2-RELEASE-p2 FreeBSD 4.6.2-RELEASE-p2 #5: Sat Sep 21 22:13:59 EDT 2002 avg@edge.foundation.invalid:/sys-devel/obj/sys-devel/src/sys/EDGE i386


	hardware and system config:
	atapci0: <Intel PIIX4 ATA33 controller> port 0xf000-0xf00f at device 7.1 on pci0
	ata0: at 0x1f0 irq 14 on atapci0
	ata1: at 0x170 irq 15 on atapci0
	ad0: 58644MB <IC35L060AVVA07-0> [119150/16/63] at ata0-master tagged UDMA33
	ad1: 8063MB <SAMSUNG SV0844D> [16383/16/63] at ata0-slave UDMA33
	acd0: CD-RW <LITE-ON LTR-40125W> at ata1-master UDMA33
	acd1: DVD-ROM <TOSHIBA DVD-ROM SD-M1212> at ata1-slave UDMA33

	hw.ata.ata_dma: 1
	hw.ata.wc: 1
	hw.ata.tags: 1
	hw.ata.atapi_dma: 1

>Description:
	after some time after boot (from several hours to several days) ad0 falls back to PIO4. attempts to change mode back to UDMA33 via atacontrol either fail (fall back to PIO on what seems to be the first disk access) or cause machine to hang
	Here are the messages form log:
Sep 21 02:55:15 edge /kernel: ad0: READ command timeout tag=0 serv=1 - resetting
Sep 21 02:55:26 edge /kernel: ad0: invalidating queued requests
Sep 21 02:55:26 edge /kernel: ad0: timeout waiting for cmd=00 s=c0 e=04
Sep 21 02:55:26 edge /kernel: ad0: flush queue failed
Sep 21 02:55:26 edge /kernel: ata0: resetting devices .. ad0: invalidating queued requests
Sep 21 02:55:26 edge /kernel: ad0: DMA limited to UDMA33, non-ATA66 cable or device
Sep 21 02:55:26 edge /kernel: done
Sep 21 02:55:26 edge /kernel: ad0: timeout waiting for READY
Sep 21 02:55:26 edge /kernel: ad0: invalidating queued requests
Sep 21 02:55:26 edge /kernel: ad0: timeout sending command=00 s=d0 e=04
Sep 21 02:55:26 edge /kernel: ad0: flush queue failed
Sep 21 02:55:26 edge /kernel: - resetting
Sep 21 02:55:26 edge /kernel: ata0: resetting devices .. ad0: invalidating queued requests
Sep 21 02:55:26 edge /kernel: ad0: DMA limited to UDMA33, non-ATA66 cable or device
Sep 21 02:55:26 edge /kernel: done
Sep 21 02:55:26 edge /kernel: ad0: READ command timeout tag=0 serv=1 - resetting
Sep 21 02:55:26 edge /kernel: ad0: invalidating queued requests
Sep 21 02:55:26 edge /kernel: ata0: resetting devices .. ad0: invalidating queued requests
Sep 21 02:55:26 edge /kernel: ad0: DMA limited to UDMA33, non-ATA66 cable or device
Sep 21 02:55:26 edge /kernel: done
Sep 21 02:55:26 edge /kernel: ad0: WRITE command timeout tag=1 serv=0 - resetting
Sep 21 02:55:26 edge /kernel: ad0: invalidating queued requests
Sep 21 02:55:26 edge /kernel: ata0: resetting devices .. ad0: invalidating queued requests
Sep 21 02:55:26 edge /kernel: ad0: DMA limited to UDMA33, non-ATA66 cable or device
Sep 21 02:55:26 edge /kernel: done
Sep 21 02:55:46 edge /kernel: ad0: READ command timeout tag=0 serv=1 - resetting
Sep 21 02:55:46 edge /kernel: ad0: invalidating queued requests
Sep 21 02:55:46 edge /kernel: ata0: resetting devices .. ad0: invalidating queued requests
Sep 21 02:55:46 edge /kernel: ad0: DMA limited to UDMA33, non-ATA66 cable or device
Sep 21 02:55:46 edge /kernel: done
Sep 21 02:55:46 edge /kernel: ad0: timeout waiting for READY
Sep 21 02:55:46 edge /kernel: ad0: invalidating queued requests
Sep 21 02:55:46 edge /kernel: ad0: timeout sending command=00 s=d0 e=04
Sep 21 02:55:46 edge /kernel: ad0: flush queue failed
Sep 21 02:55:46 edge /kernel: - resetting
Sep 21 02:55:46 edge /kernel: ata0: resetting devices .. ad0: invalidating queued requests
Sep 21 02:55:46 edge /kernel: ad0: DMA limited to UDMA33, non-ATA66 cable or device
Sep 21 02:55:46 edge /kernel: done
Sep 21 02:55:46 edge /kernel: ad0: READ command timeout tag=0 serv=1 - resetting
Sep 21 02:55:46 edge /kernel: ad0: invalidating queued requests
Sep 21 02:55:46 edge /kernel: ad0: trying fallback to PIO mode
Sep 21 02:55:46 edge /kernel: ata0: resetting devices .. ad0: invalidating queued requests
Sep 21 02:55:46 edge /kernel: done
Sep 21 02:55:56 edge /kernel: ad0: WRITE command timeout tag=0 serv=0 - resetting
Sep 21 02:55:56 edge /kernel: ad0: invalidating queued requests
Sep 21 02:55:56 edge /kernel: ata0: resetting devices .. ad0: invalidating queued requests
Sep 21 02:55:56 edge /kernel: done

	appears that device already started to serve the request, but never actually transered data (or so it appeared) and then 'flush queue' NOP command just couldn't clear BSY flag until mode was forced down to PIO (effectively disabling tag queueing too).

>How-To-Repeat:
	don't know, it just happens over here.
>Fix:

	I wish I had it


>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?200209220302.g8M32sja000774>