Re: your mail

Jacek Zapala (jacek@deuter.im.pw.edu.pl)
Sun, 12 May 1996 18:27:43 +0200


Hi, Linux wizards.

I have encountered data corruption problems. To be precise, I have found that
after copying large amounts of data the fourth bit (counting from zero) in
some bytes written to disk is set to 1. After some investigations I have
found two conditions necessary to make this problem happen.

1. I have to enable the multiple sector count on the disk which is to be
affected (setting it to 2 will do).
2. I have to enable the 'UMB' memory using my umb patch.
NOTE: That memory is 'DMAable' according to the program that enables it,
but clearing PG_DMA in mem_map[] for these memory pages makes problem
vanish.

Can somebody explain what is the mechanism of this
fourth_bit_toggling_with_multicount_enabled problem ?

1.3.98 and 1.3.100 kernels, 8 MB memory, 2 IDE disks and CDROM on VLB
controller, 486DLC-40.

/dev/hda:

Model=Maxtor 7245 AT, FwRev=6ADF1B5A, SerialNo=B809Q4KS
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>5Mbs FmtGapReq }
RawCHS=967/16/31, TrkSize=19778, SectSize=638, ECCbytes=11
BuffType=3(DualPortCache), BuffSize=64KB, MaxMultSect=32, MultSect=32
DblWordIO=yes, maxPIO=2(fast), DMA=yes, maxDMA=2(fast)
CurCHS=967/16/31, CurSects=479632, LBA=no

/dev/hdb:

Model=WDC AC2340F, FwRev=08.17D26, SerialNo=WD-wt281
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=1010/12/55, TrkSize=57600, SectSize=600, ECCbytes=4
BuffType=3(DualPortCache), BuffSize=64KB, MaxMultSect=16, MultSect=16
DblWordIO=no, maxPIO=1(medium), DMA=yes, maxDMA=2(fast)
CurCHS=1010/12/55, CurSects=666600, LBA=yes, LBAsects=666600
tDMA={min:150,rec:180}, DMA modes: sword0 mword0 mword1
IORDY=on/off, tPIO={min:350,w/IORDY:180}, PIO modes: mode3

Jacek Zapala