lkml.org 
[lkml]   [2000]   [Jul]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectIDE and VIA chipset
Hi!

I have setup a machine yesterday, and I have noticed strange behaviour.
DMA for one hard disk is enabled, while for other is not - at least that
is what hdparm says.

Motherboard/hard disks are:

Asus K7V + Athlon 700
2 x Quantum Fireball LM20.5 (primary and secondary master)

There is also a CD-ROM connected to primary port (as a slave).

Software RAID is being used. Kernel is 2.2.16 (plus RAID patches by Ingo
and IDE patches by Andre)

[root@abc ide]# hdparm -v /dev/hda

/dev/hda:
multcount = 0 (off)
I/O support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 2498/255/63, sectors = 40132503, start = 0
[root@abc ide]# hdparm -v /dev/hdc

/dev/hdc:
multcount = 0 (off)
I/O support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 39813/16/63, sectors = 40132503, start = 0
[root@abc ide]#

Although the hard disks are exactly the same, geometry is shown as
different. Any idea why?

Some more details:

[root@abc ide]# hdparm -i /dev/hda

/dev/hda:

Model=QUANTUM FIREBALLP LM20.5, FwRev=A35.0700, SerialNo=884014769388
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=32256, SectSize=21298, ECCbytes=4
BuffType=3(DualPortCache), BuffSize=1900kB, MaxMultSect=16,
MultSect=off
DblWordIO=no, OldPIO=2, DMA=yes, OldDMA=2
CurCHS=16383/16/63, CurSects=-66060037, LBA=yes, LBAsects=40132503
tDMA={min:120,rec:120}, DMA modes: mword0 mword1 mword2
IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode3 mode4
UDMA modes: mode0 mode1 mode2 mode3 *mode4

[root@abc ide]# hdparm -i /dev/hdc

/dev/hdc:

Model=QUANTUM FIREBALLP LM20.5, FwRev=A35.0700, SerialNo=884014769086
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=32256, SectSize=21298, ECCbytes=4
BuffType=3(DualPortCache), BuffSize=1900kB, MaxMultSect=16,
MultSect=off
DblWordIO=no, OldPIO=2, DMA=yes, OldDMA=2
CurCHS=16383/16/63, CurSects=-66060037, LBA=yes, LBAsects=40132503
tDMA={min:120,rec:120}, DMA modes: mword0 mword1 mword2
IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode3 mode4
UDMA modes: mode0 mode1 *mode2 mode3 mode4

I am confused about UDMA mode 4 (on /dev/hda) and UDMA mode 2 (on
/dev/hdc). What is the difference? And why hdparm says that DMA is not
enabled on /dev/hda?

And the tests show:

[root@abc ide]# hdparm -t /dev/hda

/dev/hda:
Timing buffered disk reads: 64 MB in 16.53 seconds = 3.87 MB/sec
[root@abc ide]# hdparm -t /dev/hdc

/dev/hdc:
Timing buffered disk reads: 64 MB in 3.08 seconds = 20.78 MB/sec
[root@abc ide]#

The difference is *huge*, as you can see (and I can feel it while
working 8-( )

Dmesg said:

Uniform Multi-Platform E-IDE driver Revision: 6.30
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
VP_IDE: IDE controller on PCI bus 00 dev 21
VP_IDE: chipset revision 16
VP_IDE: not 100% native mode: will probe irqs later
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
VT 82C691 Apollo Pro

Split FIFO Configuration: 8 Primary buffers, threshold = 1/2
8 Second. buffers, threshold = 1/2
ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:DMA
ide0: VIA Bus-Master (U)DMA Timing Config Success
ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:DMA, hdd:pio
ide1: VIA Bus-Master (U)DMA Timing Config Success
hda: QUANTUM FIREBALLP LM20.5, ATA DISK drive
hdb: ASUS CD-S400/A, ATAPI CDROM drive
hdc: QUANTUM FIREBALLP LM20.5, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: QUANTUM FIREBALLP LM20.5, 19595MB w/1900kB Cache, CHS=2498/255/63
hdc: QUANTUM FIREBALLP LM20.5, 19595MB w/1900kB Cache, CHS=39813/16/63,
UDMA(33)
hdb: ATAPI 40X CD-ROM drive, 128kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.09

/proc/ide/via contains:

[root@abc tmp]# cat /proc/ide/via
Command register = 0x87
Master Read Cycle IRDY 0 Wait State
Master Write Cycle IRDY 0 Wait State
FIFO Output Data 1/2 Clock Advance: off
Bus Master IDE Status Register Read Retry: on
Latency timer = 32 (max. = 0)
Interrupt Steering Swap: off
------------------Primary IDE------------Secondary IDE-----
both channels togth: yes yes
Prefetch Buffer : on on
Post Write Buffer: on on
FIFO Conf/Chan. : 08 08
Threshold Prim. : 1/2 1/2
Read DMA FIFO flush: on on
End Sect. FIFO flush: on on
Max DRDY Pulse Width: No limitation
Bytes Per Sector: 512 512
--------------drive0------drive1-------drive0------drive1----
DMA enabled: no yes yes no
Act Pls Width: 03 03 03 11
Recovery Time: 01 01 01 09
Add. Setup T.: 4T 4T 4T 4T
------------------UDMA-Timing-Control------------------------
Enable Meth.: 1 1 1 0
Enable: yes yes yes no
Transfer Mode: PIO PIO PIO DMA
Cycle Time: 2T 4T 4T 5T


Is this known behaviour? If so, what can I do to fix it? :)

Thanks.

Vanja Hrustic
The Relay Group
http://relaygroup.com
Technology Ahead of Time

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:57    [W:0.041 / U:0.504 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site