Re: Problems with EIDE driver (I think)

James MacLean (macleajb@ednet.ns.ca)
Wed, 6 Mar 1996 19:13:24 -0400 (AST)


Last time Liam Hudson said:

> From: Liam Hudson <l.hudson02@ic.ac.uk>
> Subject: Problems with EIDE driver (I think)
>
> Hi,
>
> I have been using two EIDE drives with Linux for quite a while and have noticed a persistant
> problem. Under heavy load the drive assigned to /dev/hda sometimes hangs, that is the hard
> drive light stays on and the system enventually crashs.
> Looking at /var/log/messages reveals persistant hard drive errors of the form:
> Mar 6 09:11:53 hudsonpc kernel: hda: irq timeout: status=0xd0 { Busy }
> Mar 6 09:11:53 hudsonpc kernel: ide0: reset: success
> This is always with /dev/hda never /dev/hdb/
> Thanks
>
> Liam hudson
> --
> -----------------------------------------------------------------------------------------
> | Liam Hudson | Imperial College Of Science & Tech | Flat 1, 194 Cromwell Rd.|
> | l.hudson02@ic.ac.uk | South Kensington, London | Earls Court, London |
> | 0171 594 7685 | SW5 2BZ | SW7 0SN |
> -----------------------------------------------------------------------------------------

I was expecting to have my similar problem completely fixed to help close the
book at my site, but it may help that I add my situation now.

I too was getting the same(similar) messages as above and after a few E-mails
to/from "mark (m.s.) lord" <mlord@bnr.ca> (thanks Mark:-)) he showed how the
fdisk(cfdisk) I had used set my hda with incorrect sizes :

Command (m for help): p

Disk /dev/hda: 16 heads, 63 sectors, 1057 cylinders
Units = cylinders of 1008 * 512 bytes

Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 51 25619 83 Linux native
Partition 1 does not end on cylinder boundary:
phys=(200, 14, 17) should be (200, 15, 63)
/dev/hda2 * 202 51 661 307147+ 83 Linux native
Partition 2 does not end on cylinder boundary:
phys=(1023, 14, 17) should be (1023, 15, 63)
/dev/hda3 1024 661 726 32767+ 82 Linux swap
Partition 3 does not start on cylinder boundary:
phys=(1023, 14, 17) should be (1023, 0, 1)
Partition 3 does not end on cylinder boundary:
phys=(1023, 14, 17) should be (1023, 15, 63)
/dev/hda4 1024 726 1058 167407+ 83 Linux native
Partition 4 does not start on cylinder boundary:
phys=(1023, 14, 17) should be (1023, 0, 1)
Partition 4 does not end on cylinder boundary:
phys=(1023, 14, 17) should be (1023, 15, 63)

>From Mark :
---------------------------------------
Okay. Let's try some basic math here:

The basic hard disk geometry you are using is:
16 * 63 * 1057 = 1065456 sectors

The partition block-counts add up as follows:
25619 + 307147 + 32767 + 167407 = 532940 blocks
a block is two sectors, so this = 1065880 sectors

Somehow fdisk has allocated 1065880 sectors on a disk with only 1065456
sectors.That is the problem.
---------------------------------------
Mark went even further to check and see if it had gotten incorrect information
from firmware by looking at hdparm -i /dev/hda:

Model=ST3660A, FwRev=06.06.01ST3660A, SerialNo=DZ159078
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=1057/16/63, TrkSize=36240, SectSize=584, ECCbytes=16
BuffType=3(DualPortCache), BuffSize=120KB, MaxMultSect=16, MultSect=off
DblWordIO=no, maxPIO=2(fast), DMA=yes, maxDMA=2(fast)
CurCHS=1057/16/63, CurSects=1065456, LBA=yes, LBAsects=1065456
tDMA={min:150,rec:150}, DMA modes: *mword0 mword1
IORDY=yes, tPIO={min:363,w/IORDY:180}, PIO modes: mode3

So we were (I believe) not certain where exactly the misinteruptation of
disk size originated. But the fix is ofcourse is to repartition the disk
and get 'er right this time :-).

To date I have not done this :-(, but with 1.3.69 running, we have not
received and of the above messages lately :-). I expect to do it whenever
I can coordinate the downtime.

Sorry it was long, but maybe it atleast provides for a good E-mail address
to ask questions :-),
JES

-- 
James B. MacLean	macleajb@ednet.ns.ca
Department of Education	http://www.ednet.ns.ca/~macleajb/dosemu.html
Nova Scotia, Canada
B3M 4B2