Bug 5562 - hda: no DRQ after issuing WRITE
Summary: hda: no DRQ after issuing WRITE
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: kernel
Version: 6.0
Hardware: All
OS: Linux
high
medium
Target Milestone: ---
Assignee: Michael K. Johnson
QA Contact:
URL: www.seagate.com
Whiteboard:
: 4612 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 1999-10-05 04:27 UTC by wesley_chan
Modified: 2008-05-01 15:37 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2001-06-10 18:36:43 UTC
Embargoed:


Attachments (Terms of Use)

Description wesley_chan 1999-10-05 04:27:27 UTC
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

Comment 1 Cristian Gafton 1999-10-05 06:01:59 UTC
*** 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.

Comment 2 Cristian Gafton 1999-10-06 22:42:59 UTC
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

Comment 3 Dariusz Gsrka 2001-06-10 17:29:22 UTC
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


Comment 4 Arjan van de Ven 2001-06-10 18:36:39 UTC
bronek.krakow.pl: Abit BP6 boards need the latest bios to even
have a remotly working HPT366 interface...

Comment 5 Ben LaHaise 2002-06-03 21:48:56 UTC
Is this still a problem in Red Hat 7.3?  If so, please reopen this bug.

Comment 6 Dariusz Gsrka 2002-06-04 05:10:22 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.