2001-03-01 07:59:57

by Nicholas Lee

[permalink] [raw]
Subject: Strange hdparm behaviour with Via 686b and 2.4.2



[Please CC:, not subscribed]


I've got a new Athlon 900 with Abit KT7A motherboard and a 20Gb Seagate
ST320414A 7200 ATA100 HDD.

I've been trying to figure out why my hdparm -t rates where so low.

Then I stumbled across this:


At this point dnetc (http://www.distributed.net client running RC5) is going
full hog.


nic@thunder:~/dnetc$ ./dnetc -hide -nice 19
nic@thunder:~/dnetc$ sudo nice -n '-19' hdparm -m16 -tT /dev/hda

/dev/hda:
setting multcount to 16
multcount = 16 (on)
Timing buffer-cache reads: 128 MB in 0.92 seconds =139.13 MB/sec
Timing buffered disk reads: 64 MB in 2.06 seconds = 31.07 MB/sec
nic@thunder:~/dnetc$ ./dnetc -shutdown
dnetc: 1 distributed.net client was shutdown. 0 failures.
nic@thunder:~/dnetc$ sudo nice -n '-19' hdparm -m16 -tT /dev/hda

/dev/hda:
setting multcount to 16
multcount = 16 (on)
Timing buffer-cache reads: 128 MB in 0.90 seconds =142.22 MB/sec
Timing buffered disk reads: 64 MB in 4.46 seconds = 14.35 MB/sec

nic@thunder:~/dnetc$ sudo hdparm /dev/hda

/dev/hda:
multcount = 16 (on)
I/O support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 2434/255/63, sectors = 39102336, start = 0



Very strange.

nic@thunder:~/dnetc$ dmesg | grep --regexp 'DMA\|hda\|ide'
BIOS-provided physical RAM map:
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci00:07.1
ide0: BM-DMA at 0xe000-0xe007, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xe008-0xe00f, BIOS settings: hdc:pio, hdd:pio
hda: ST320414A, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: 39102336 sectors (20020 MB) w/2048KiB Cache, CHS=2434/255/63, UDMA(100)
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 hda9 hda10 hda11 hda12 >
8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.




Note this is just a report. Not sure if it means anything, not I've
noted the problems with the Via IDE chitset recent and thought this
might interest.

If anyone can explain this I'd be most please to find out why.



Nicholas


2001-03-01 08:50:35

by Mike Maravillo

[permalink] [raw]
Subject: Re: Strange hdparm behaviour with Via 686b and 2.4.2

I'm not sure if this one is related. This is on an AMD K6-2 450
with MS-5187 board and VIA VT82C686A chipset...

# hdparm -tT /dev/hda /dev/hdc

/dev/hda:
Timing buffer-cache reads: 128 MB in 3.16 seconds = 40.51 MB/sec
Timing buffered disk reads: 64 MB in 11.84 seconds = 5.41 MB/sec

/dev/hdc:
Timing buffer-cache reads: 128 MB in 3.12 seconds = 41.03 MB/sec
Timing buffered disk reads: 64 MB in 5.17 seconds = 12.38 MB/sec

# dmesg | grep 'hd[a|c]: '
hda: ST320413A, ATA DISK drive
hdc: SAMSUNG SV0761D, ATA DISK drive
hda: 39102336 sectors (20020 MB) w/512KiB Cache, CHS=2434/255/63, UDMA(66)
hdc: 14948640 sectors (7654 MB) w/434KiB Cache, CHS=14830/16/63, UDMA(66)
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >
hdc: [PTBL] [930/255/63] hdc1 hdc2 hdc3 hdc4 < hdc5 hdc6 >

On Thu, Mar 01, 2001 at 08:59:30PM +1300, Nicholas Lee wrote:
>
> I've got a new Athlon 900 with Abit KT7A motherboard and a 20Gb Seagate
> ST320414A 7200 ATA100 HDD.
>
> I've been trying to figure out why my hdparm -t rates where so low.
>
> Then I stumbled across this:
>
> At this point dnetc (http://www.distributed.net client running RC5) is going
> full hog.
>
> nic@thunder:~/dnetc$ ./dnetc -hide -nice 19
> nic@thunder:~/dnetc$ sudo nice -n '-19' hdparm -m16 -tT /dev/hda
>
> /dev/hda:
> setting multcount to 16
> multcount = 16 (on)
> Timing buffer-cache reads: 128 MB in 0.92 seconds =139.13 MB/sec
> Timing buffered disk reads: 64 MB in 2.06 seconds = 31.07 MB/sec
> nic@thunder:~/dnetc$ ./dnetc -shutdown
> dnetc: 1 distributed.net client was shutdown. 0 failures.
> nic@thunder:~/dnetc$ sudo nice -n '-19' hdparm -m16 -tT /dev/hda
>
> /dev/hda:
> setting multcount to 16
> multcount = 16 (on)
> Timing buffer-cache reads: 128 MB in 0.90 seconds =142.22 MB/sec
> Timing buffered disk reads: 64 MB in 4.46 seconds = 14.35 MB/sec
>
> nic@thunder:~/dnetc$ sudo hdparm /dev/hda
>
> /dev/hda:
> multcount = 16 (on)
> I/O support = 1 (32-bit)
> unmaskirq = 1 (on)
> using_dma = 1 (on)
> keepsettings = 0 (off)
> nowerr = 0 (off)
> readonly = 0 (off)
> readahead = 8 (on)
> geometry = 2434/255/63, sectors = 39102336, start = 0
>
> nic@thunder:~/dnetc$ dmesg | grep --regexp 'DMA\|hda\|ide'
> BIOS-provided physical RAM map:
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci00:07.1
> ide0: BM-DMA at 0xe000-0xe007, BIOS settings: hda:DMA, hdb:pio
> ide1: BM-DMA at 0xe008-0xe00f, BIOS settings: hdc:pio, hdd:pio
> hda: ST320414A, ATA DISK drive
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> hda: 39102336 sectors (20020 MB) w/2048KiB Cache, CHS=2434/255/63, UDMA(100)
> hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 hda9 hda10 hda11 hda12 >
> 8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.

--
.--. Michael J. Maravillo office://+63.2.894.3592/
( () ) Q Linux Solutions, Inc. mobile://+63.917.897.0919/
`--\\ A Philippine Open Source Solutions Co. http://www.q-linux.com/

2001-03-01 09:40:41

by Nicholas Lee

[permalink] [raw]
Subject: Re: Strange hdparm behaviour with Via 686b and 2.4.2

On Thu, Mar 01, 2001 at 04:49:59PM +0800, Mike Maravillo wrote:
> I'm not sure if this one is related. This is on an AMD K6-2 450
> with MS-5187 board and VIA VT82C686A chipset...

Should have add this in the last message. Almost exactly the same system
same HDD, KT7 (with 686A) motherboard and a Duron 700, running:


[nic@hoppa:~] uname -a
Linux hoppa 2.2.18pre21 #1 Fri Dec 22 02:27:39 NZDT 2000 i686 unknown



[nic@hoppa:~/dnetc] w
9:11pm up 63 days, 12:32, 1 user, load average: 0.99, 0.97, 0.91

[nic@hoppa:~/dnetc] sudo hdparm -Tt /dev/hda

/dev/hda:
Timing buffer-cache reads: 128 MB in 1.18 seconds =108.47 MB/sec
Timing buffered disk reads: 64 MB in 2.29 seconds = 27.95 MB/sec
[nic@hoppa:~/dnetc] w
[nic@hoppa:~/dnetc] ./dnetc -shutdown
dnetc: 1 distributed.net client was shutdown. 0 failures.
[nic@hoppa:~/dnetc] sudo hdparm -Tt /dev/hda

/dev/hda:
Timing buffer-cache reads: 128 MB in 1.14 seconds =112.28 MB/sec
Timing buffered disk reads: 64 MB in 2.26 seconds = 28.32 MB/sec

[nic@hoppa:~] sudo hdparm /dev/hda

/dev/hda:
multcount = 16 (on)
I/O support = 1 (32-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 1 (on)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 2480/255/63, sectors = 39851760, start = 0



That's the sort of behaviour you'd expect.

Nicholas

2001-03-01 20:48:36

by Nicholas Lee

[permalink] [raw]
Subject: Re: Strange hdparm behaviour with Via 686b and 2.4.2

On Thu, Mar 01, 2001 at 05:00:07AM -0700, Harold Oga wrote:

> Hi Nicholas,
> I don't see a similar slowdown on my system. I have an Athlon 900 with
> a MSI K7T Pro-2a motherboard and a 15Gig Maxtor 31536H2 5400 ATA100 HD.
> This motherboard is a KT133 board, but it does also have a 686B chip.
> Running the same steps you did, I get the following:
>
> [ogah@ogah /Junk]> ./dnetc -hide -nice 19
> [ogah@ogah /Junk]> sudo nice -n '-19' hdparm -m16 -tT /dev/hda
>
> /dev/hda:
> setting multcount to 16
> multcount = 16 (on)
> Timing buffer-cache reads: 128 MB in 0.70 seconds =182.86 MB/sec
> Timing buffered disk reads: 64 MB in 2.41 seconds = 26.56 MB/sec
> [ogah@ogah /Junk]> ./dnetc -shutdown
> dnetc: 1 distributed.net client was shutdown. 0 failures.
> [ogah@ogah /Junk]> sudo nice -n '-19' hdparm -m16 -tT /dev/hda
>
> /dev/hda:
> setting multcount to 16
> multcount = 16 (on)
> Timing buffer-cache reads: 128 MB in 0.67 seconds =191.04 MB/sec
> Timing buffered disk reads: 64 MB in 2.42 seconds = 26.45 MB/sec
>

> One thing that comes to mind is that we are probably not using the same
> version of the via82cxxx ide driver. I assume that you are using the
> via82cxxx v3.20 driver that came with 2.4.2. You can check which version
> of the via driver you are using by looking at /proc/ide/via. I am using
> v4.3 of the via82cxxx driver which Vojtech Pavlik (the via82cxxx
> maintainer) sent to the linux-kernel mailing list a while back. I have

Yep I was. Couldn't find that particular message on the mailing list
although I did find an earlier set. (See below.)

Is there a central web location for these files?


> attached the 2 files you need. Just copy the 2 files to
> /usr/src/linux/drivers/ide/, replacing the versions that already exist in
> that directory. That might fix your problems, as Vojtech fixed quite a
> few bugs with regards to the 686b support between versions v3.20 and v4.3.
> I know that for me, I was never able to get my ATA66 drive (hdb) to run at
> full speed until driver v4.3. Until then, hda would get set correctly to
> udma5, but hdb would get set to udma2 (ATA33) instead of udma4 (ATA66).

First up, thanks for the help.

I installed the two files you gave me, plus I added another file I
found in archives:

nic@thunder:~$ grep Id *.h *.c
ide-timing.h: * $Id: ide-timing.h,v 2.1 2001/02/08 19:32:56 vojtech Exp $
amd7409.c: * $Id: amd7409.c,v 2.0 2001/02/08 21:08:60 vojtech Exp $
via82cxxx.c: * $Id: via82cxxx.c,v 4.3 2001/02/21 08:10:60 vojtech Exp $


amd7409.c was with:
ide-timing.h: * $Id: ide-timing.h,v 2.0 2001/02/08 19:32:56 vojtech Exp $
via82cxxx.c: * $Id: via82cxxx.c,v 4.0 2001/02/08 19:32:60 vojtech Exp $

not sure if that would affect things.


Anyway seems to have greater improved performance, but not without load on the system.


Nic@thunder:~$ sudo nice -n '-19' hdparm -m16 -tT /dev/hda

/dev/hda:
setting multcount to 16
multcount = 16 (on)
Timing buffer-cache reads: 128 MB in 0.78 seconds =164.10 MB/sec
Timing buffered disk reads: 64 MB in 4.33 seconds = 14.78 MB/sec
nic@thunder:~$ dnetc/dnetc -hide -nice 19
nic@thunder:~$ sudo nice -n '-19' hdparm -m16 -tT /dev/hda

/dev/hda:
setting multcount to 16
multcount = 16 (on)
Timing buffer-cache reads: 128 MB in 0.80 seconds =160.00 MB/sec
Timing buffered disk reads: 64 MB in 1.69 seconds = 37.87 MB/sec



nic@thunder:~$ cat /proc/ide/via
----------VIA BusMastering IDE Configuration----------------
Driver Version: 4.3
South Bridge: VIA vt82c686b
Revision: ISA 0x40 IDE 0x6
Highest DMA rate: UDMA100
BM-DMA base: 0xe000
PCI clock: 34MHz
Master Read Cycle IRDY: 0ws
Master Write Cycle IRDY: 0ws
BM IDE Status Register Read Retry: yes
Max DRDY Pulse Width: No limit
-----------------------Primary IDE-------Secondary IDE------
Read DMA FIFO flush: yes yes
End Sector FIFO flush: no no
Prefetch Buffer: yes yes
Post Write Buffer: yes no
Enabled: yes yes
Simplex only: no no
Cable Type: 80w 40w
-------------------drive0----drive1----drive2----drive3-----
Transfer Mode: UDMA PIO PIO PIO
Address Setup: 29ns 116ns 116ns 116ns
Cmd Active: 87ns 87ns 464ns 464ns
Cmd Recovery: 58ns 58ns 464ns 464ns
Data Active: 87ns 319ns 319ns 319ns
Data Recovery: 58ns 261ns 261ns 261ns
Cycle Time: 20ns 580ns 580ns 580ns
Transfer Rate: 100.0MB/s 3.4MB/s 3.4MB/s 3.4MB/s



Here are some bonnie++ stats comparisions.

With dnetc running:

Version 1.00h ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
thunder 1G 7012 85 49441 24 7558 5 6210 57 38020 11 170.8 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 827 85 +++++ +++ 15949 85 830 85 +++++ +++ 3703 85
thunder,1G,7012,85,49441,24,7558,5,6210,57,38020,11,170.8,0,16,827,85,+++++,+++,15949,85,830,85,+++++,+++,3703,85


Without dnetc running:
Version 1.00h ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
thunder 1G 7990 99 44434 23 6905 6 5429 65 17395 5 163.4 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 824 99 +++++ +++ 16754 100 827 99 +++++ +++ 4346 100
thunder,1G,7990,99,44434,23,6905,6,5429,65,17395,5,163.4,0,16,824,99,+++++,+++,16754,100,827,99,+++++,+++,4346,100


The Block Sequential Input test seems to be the only telling difference.


If I get a change I'll borrow my Abit KT7 (686a) over the weekend and attempt
to just swap HDDs and test again.

Nicholas