Date: Thu, 6 Jan 2000 10:31:43 +1100 From: Peter Jeremy <peter.jeremy@alcatel.com.au> To: freebsd-current@FreeBSD.ORG Subject: ATA driver problems Message-ID: <00Jan6.103145est.40326@border.alcanet.com.au>
next in thread | raw e-mail | index | archive | help
Yesterday I updated from a pre-signal-change -current to something closer to the present (cvs-cur 5961 - about last Monday, to be precise). Every night, I run "dd if=/dev/rwdXc of=/dev/null bs=64k" on both of my disks (I trim the output and merge it with a number of other systems). I forgot to update the wd to ad and last night it reported errors. I was expecting: gsmx07:wd0:91746+1 records in gsmx07:wd0:91746+1 records out gsmx07:wd0:6012679680 bytes transferred gsmx07:wd2:19561+1 records in gsmx07:wd2:19561+1 records out gsmx07:wd2:1281950208 bytes transferred But instead I got: gsmx07:wd0:dd: /dev/rwd0c: Invalid argument gsmx07:wd0:91747+0 records in gsmx07:wd0:91747+0 records out gsmx07:wd0:6012731392 bytes transferred gsmx07:wd2:dd: /dev/rwd2c: Input/output error gsmx07:wd2:19561+0 records in gsmx07:wd2:19561+0 records out gsmx07:wd2:1281949696 bytes transferred At about the same time, the following message appeared in /var/log/messages: /kernel: ad2: HARD READ ERROR blk# 2503871 /kernel: ad2: HARD READ ERROR blk# 2503871 status=59 error=10 /kernel: ad2: DMA problem encountered, fallback to PIO mode I just tried repeating it with ad0 instead of wd0 and got the same thing. I don't want to repeat it with ad2 since there doesn't appear to be any way to re-enable DMA short of rebooting [or maybe that patch hasn't arrived here yet]. This suggests that there are two separate problems: 1) An I/O request for a block that entends beyond the end of the physical slice will abort with EINVAL, rather than returning a partial block. 2) There seems to be an off-by-1 error in the size reported by my Fireball (or maybe in the request handling), causing it to report an I/O error on the last sector. The first problem would seem to be a bug in the ata driver, since the behaviour on other Unices is to return a partial block. (And this might be related to the difficulties Brian Feldman is reporting). I'm not sure about the second problem - all I can say if that the wd driver saw the same number of sectors and the bytes read from the disk matches the number of sectors in the slices. Does anyone have any ideas? The disk-related probe messages are: ata-pci0: <Intel PIIX4 ATA controller> at device 7.1 on pci0 ata-pci0: Busmastering DMA supported ata0 at 0x01f0 irq 14 on ata-pci0 ata1 at 0x0170 irq 15 on ata-pci0 ... ata-isa0: already registered as ata0 ata-isa1: already registered as ata1 ... ad0: <FUJITSU MPB3064ATU E/4010> ATA-3 disk at ata0 as master ad0: 6187MB (12672450 sectors), 13410 cyls, 15 heads, 63 S/T, 512 B/S ad0: 16 secs/int, 1 depth queue, UDMA33 ad2: <QUANTUM FIREBALL_TM1280A/A6B.2D00> ATA-0 disk at ata1 as master ad2: 1222MB (2503872 sectors), 2484 cyls, 16 heads, 63 S/T, 512 B/S ad2: 16 secs/int, 1 depth queue, DMA acd0: <CD-ROM CDU611/2.0a> CDROM drive at ata0 as slave acd0: read 1723KB/s (1723KB/s), 256KB buffer, DMA acd0: Reads: CD-R, CD-RW, CD-DA stream acd0: Audio: play, 16 volume levels acd0: Mechanism: ejectable tray acd0: Medium: no/blank disc inside, unlocked ad0 has two active slices, the FreeBSD one is the second and is 11743515 sectors. ad2 is dedicated (not dangerously) to FreeBSD and the slice is 2503809 sectors. Peter -- Peter Jeremy (VK2PJ) peter.jeremy@alcatel.com.au Alcatel Australia Limited 41 Mandible St Phone: +61 2 9690 5019 ALEXANDRIA NSW 2015 Fax: +61 2 9690 5982 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?00Jan6.103145est.40326>