To Linux IDE guys, My name is Wesley Chan from SEAGATE Singapore R&D. As you know Seagate is a company in the storage business. During the development of a new unreleased IDE harddisk, we encountered one problem with RH Linux 6.0 with error msg "hda: no DRQ after issuing WRITE". The IDE bus analyser traces showed that after the write cmd (30h)was issued to the harddisk, the Linux driver just waited for 50ms and gave up & posted "no DRQ after issuing WRITE" error msg. We have confirmed this behaviour by reviewing the kernel source code 2.2.x ide-disk.c & ide.h. Unfortunately the harddisk actually posted DRQ slightly longer than 50ms. The reason for this slightly longer delay was because of write-caching behaviour of the drive. I feel that it will be nice if the driver can increase the timeout slightly longer (to 200 or 500ms, or even 1 second) so that future IDE HD compatibility can be guaranteed. Attached is the complete bus anlayser trace for your reference. Pls let me know your opinion. Wesley Chan (Wesley_Chan.com) Snr Manager Seagate Singapore R&D ------------------------------------------------------ (Bus analyser trace) 133_920 Read Status 50 4_480 Write Device/Head e0 3_480 Read Status 50 50 6_120 Write Device Cntl 08 2_440 Write Sector Cnt 02 2_440 Write Sector Num 83 2_440 Write Cyl Low 00 2_440 Write Cyl High 4b 2_860 Write Device/Head e0 2_480 Write Command Write Sector, (w/retry) 30 3_480 Read Status 58 58 6_400 Write Data ffff ffff ffff ffff ffff 124_160 Read Status 58 2_540 Write Data 0000 0000 0000 0000 0000 366_320 Read Status 50 4_340 Write Device/Head e0 4_080 Read Status 50 50 6_100 Write Device Cntl 08 2_440 Write Sector Cnt 04 2_440 Write Sector Num 83 3_220 Write Cyl Low c0 2_460 Write Cyl High 61 2_460 Write Device/Head e0 2_480 Write Command Write Sector, (w/retry) 30 3_480 Read Status 58 58 6_360 Write Data ffff ffff ffff ffff ffff 124_200 Read Status 58 2_540 Write Data 0000 0000 0000 0000 0000 3_967_060 Read Status 58 3_500 Write Data 3fff 0000 0000 0000 0000 124_440 Read Status 58 2_540 Write Data ffff ffff ffff ffff ffff 902_560 Read Status 50 4_920 Write Device/Head e0 3_480 Read Status 50 50 6_540 Write Device Cntl 08 2_440 Write Sector Cnt 18 2_460 Write Sector Num 89 2_440 Write Cyl Low c0 2_420 Write Cyl High 61 2_480 Write Device/Head e0 2_860 Write Command Write Sector, (w/retry) 30 3_480 Read Status d0 d0 d0 d0 d0 d0 d0 d0 19_560 d0 d0 d0 d0 d0 d0 d0 d0 19_520 d0 d0 d0 d0 d0 d0 d0 d0 19_960 d0 d0 d0 d0 d0 d0 d0 d0 20_020 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 20_440 d0 d0 d0 d0 d0 d0 d0 d0 19_900 d0 d0 d0 d0 d0 d0 d0 d0 20_040 d0 d0 d0 d0 d0 d0 d0 d0 20_440 d0 d0 d0 d0 d0 d0 d0 d0 19_900 d0 d0 d0 d0 d0 d0 d0 d0 20_040 d0 d0 d0 d0 d0 d0 d0 d0 20_320 d0 d0 d0 d0 d0 d0 d0 d0 20_020 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 ..... all D0h in status register for about 57ms (Drive actually takes slightly longer to finish) 20_420 d0 d0 d0 d0 d0 d0 d0 d0 20_040 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 20_420 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 20_040 d0 d0 d0 d0 d0 d0 d0 d0 20_420 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 20_420 d0 d0 d0 d0 d0 d0 d0 d0 20_040 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 20_420 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 20_040 d0 d0 d0 d0 d0 d0 d0 d0 20_420 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 20_420 d0 d0 d0 d0 d0 d0 d0 d0 20_040 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 20_420 d0 d0 d0 d0 d0 d0 d0 d0 19_920 d0 d0 d0 d0 d0 d0 d0 d0 20_040 d0 d0 d0 d0 d0 d0 d0 d0 20_420 d0 d0 d0 d0 d0 d0 d0 2_131_520 Write Device Cntl 0e 12_440 Write Device Cntl 0a 47_879_800 Read Status I 80 80 80 50 150_047_860 Read Error Reg I 01 40_860 Write Device/Head I e0 3_900 Read Status I 50 50 6_980 Write Sector Num I 3f 2_440 Write Cyl Low I 88 3_320 Write Cyl High I 82 2_480 Write Device/Head I af 3_340 Write Device Cntl I 08 2_540 Write Sector Cnt 3f 2_440 Write Command Initialize Drv Para 91 62_055_860 Read Status I 50 50 7_340 Write Device/Head e0 3_540 Read Status 50 50 7_560 Write Device Cntl 08 2_440 Write Sector Cnt 3f 2_440 Write Command Recalibrate 10 163_320 Read Status I 50 50 5_800 Write Device/Head e0 3_500 Read Status 50 50 6_380 Write Device Cntl 08 2_440 Write Sector Cnt 18 2_440 Write Sector Num 89 2_440 Write Cyl Low c0 2_440 Write Cyl High 61 2_480 Write Device/Head e0 2_820 Write Command Write Sector, (w/retry) 30 3_480 Read Status 58 58 6_740 Write Data 81a4 0000 022a 0000 2c1e 124_000 Read Status 58 3_380 Write Data 81a4 0000 0290 0000 2c1d 125_320 Read Status 58 4_420 Write Data 81ed 0000 f69c 0000 9eec 123_980 Read Status 58 2_580 Write Data 81ed 0000 b1b8 00059ef2 124_560 Read Status 58 3_520 Write Data 81ed 0000 2ef4 0000 9ef3 124_100 Read Status 58 2_540 Write Data 81ed 0000 bbcc 0000 9ef4 124_940 Read Status 58 3_740 Write Data 81ed 0000 542c 0000 9ef7 124_180 Read Status 58 2_540 Write Data 81ed 0000 2504 0000 9ef7 124_160 Read Status 58 3_240 Write Data 81ed 0000 f3f8 0006 9efb
*** Bug 4612 has been marked as a duplicate of this bug. *** Seagate's ST34311A drive (ATA33/66) gets a : hda: status timeout: status 0xd0 {Busy} hda: no DRQ after issuing WRITE ide0: resest: success After talking with Seagate, we changed drives and this seems to happen with only this drive with RedHat 6.0. I don't know if anyone could shed somelight on the problem. Thanks.
Commenst from the author: Basically I understand that this issue FIRST happen in Seagate's drive. That's because the caching algorithm has been improved to queue up deeper write cmds. And the industrial trend is moving to this direction as the drive's cache getting bigger & bigger. So there will be more and more drives behaving this way. My recommendation is to relax the timeout a bit so that to get a better compatibility for future drives. There's no harm doing this. I think this will put RH Linux in better market position also. (Windows9x don't have this issue) -- bug assigned to dledford
I have got the same problem with RH7.0 kernel 2.4.5 MB: Abit BP6. HDD: 4X Seagate 40GB (ST340824A) Drives which are connected to HPT366 writes this messages and the machine hangs. I have connected it to the same ribbon (40 pins) so it works on UDMA33 an it is ok but when they ware on separate cables eaven 40 pins machine crasches. Pleasa do something I did RAID5 on them. Dariusz Gsrka
bronek.krakow.pl: Abit BP6 boards need the latest bios to even have a remotly working HPT366 interface...
Is this still a problem in Red Hat 7.3? If so, please reopen this bug.
It is hard for me to check it. It's a production machine, and now disks are connected to PROMISE addon card, but i will try to find different one. With kernel 2.4.17-linus, with and w/o Andrea's patch problem still exists. Give me some time.