I get disk read around 1.5 MB/s, when nominal speed for UDMA 100
is 100 MB/s, as it should be from output of commands below.
I get SAME speed when I boot with 'Primary Master = None' in
CMOS setup (I boot from diskette, root= ...), resulting in drive
being in UDMA33 mode (and 1.5 MB/s is slow for this too!)
I have this system for some year now, and I always postponed these
problems, since it is 'workable' because of the 256 MB ram.
No more workable because now I want to capture from video camera.
Output from commands that I believe relevant are given at end of
this message, to give the state of the system.
The system
- PC:
Motherboard is MSI k7T Turbo2, with onboard IDE controller VIA xxxx
(ATA100 capable);
RAM is 256 MB PC133; Processor AMD Athlon 800 MHz (Thunderbird);
Primary Master drive is Maxtor DiamondMax 40 GB model ... (ATA100 capable)
Cable is Ok (80 wires) (I even changed it to a new one);
AGP Video card ATI Rage Pro 3D, 8 MB.
No other drive, no other PCI card for these tests.
- CMOS setup:
Maxtor 40 GB seen in the CMOS, access mode = Auto.
(Other CMOS setups, as 'NONE primary', or Maxtor + other Access Modes
but make no differences in speed, only in *udma2 mode when 'NONE'!)
- OS:
Linux kernel 2.4.18, Slackware-8.1beta(Some version), but tried
in Slackware-7.1 (older kernel), nearly same results.
I boot from a diskette, with 'boot: mount root=/dev/hda8 ro single'.
Linux swap partition of 512 MB.
No 'modprobe ide-scsi' module for these tests.
- IDE controller driver is in kernel .config: ' CONFIG_BLK_DEV_VIA82CXXX=y',
and ($ cat /proc/ide/via) is ok, see output below.
I have low speed disk reads measured from hdparm, typically:
$ hdparm -Tt /dev/hda
Timing buffer-cache reads: 128 MB in 0.71 seconds = 180.28 MB/sec
Timing buffered disk reads: 64 MB in 48.90 seconds = 1.31 MB/sec
The best disk read speed I got is approx 2.5 MB/s, but not often.
This in single user mode (no X window), NO other processes than
after boot. I tried many things (like changing Primary Master
access mode to Large, LBA,... in CMOS Setup), changing the
IDE 80 wires cable, ...; always this speed for disk read.
I have read the previous thread
'*Slow* disk performance, suggestions anyone?'.
I searched www.google.com (the web) and groups.google.com for
(...) and friends, and found nothing to help me, except some
problems with VIA IDE controllers (and Linux, *and* windows).
However these problems should be solved in recent kernels (as my
linux 2.4.18) from what I did understand.
Questions about my low speed:
- Do I have a chance of having normal disk speed with a newer kernel?
- What can I do?
- Is there something (some minimal 'system') I can boot with to see
if hardware is Ok?
I do not want to install an MS Windows system (and the drivers from MSI
then needed). I don't have some, and I fear that it would broke my
partioning.
I will perhaps have the possibility to test the Maxtor 40 GB HD in a
more Intel-like system (approx Pentium II 400 MHz), but then can't go
to UDMA100. At least will see if more than 1.5 MB/s disk read!
- - - Some parameters and states of the system - - -
Here are:
part of boot message, cat /dev/proc/via, hdparm -v, hdparm -I, hdparm -i.
when Master Primary setup in CMOS, access mode = Auto.
# Some boot messages
dmesg #> some output:
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller on PCI bus 00 dev 39
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
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 0xd000-0xd007, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
hda: Maxtor 54098H8, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: ... sectors (40981 MB) w/2048KiB Cache, CHS=4982/255/63, UDMA(100)
# The state of the VIA 82C686B IDE controller and of the Maxtor drive:
cat /proc/ide/via # CMOS setup has Primary Master = Auto, access mode = auto
----------VIA BusMastering IDE Configuration----------------
Driver Version: 3.29
South Bridge: VIA vt82c686b
Revision: ISA 0x40 IDE 0x6
Highest DMA rate: UDMA100
BM-DMA base: 0xd000
PCI clock: 33MHz
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: no no
Post Write Buffer: no no
Enabled: yes yes
Simplex only: no no
Cable Type: 80w 40w
-------------------drive0----drive1----drive2----drive3-----
Transfer Mode: UDMA PIO PIO PIO
Address Setup: 30ns 120ns 120ns 120ns
Cmd Active: 90ns 90ns 480ns 480ns
Cmd Recovery: 30ns 30ns 480ns 480ns
Data Active: 90ns 330ns 330ns 330ns
Data Recovery: 30ns 270ns 270ns 270ns
Cycle Time: 20ns 600ns 600ns 600ns
Transfer Rate: 99.0MB/s 3.3MB/s 3.3MB/s 3.3MB/s
hdparm -v /dev/hda
multcount = 0 (off)
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 = 4982/255/63, sectors = 80041248, start = 0
busstate = 1 (on)
hdparm -i /dev/hda
Model=Maxtor 54098H8, FwRev=DAC10SC0, SerialNo=K80JR6BC
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57
BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=off
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=80041248
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive Supports :\
ATA/ATAPI-6 T13 1410D revision 0 : ATA-1 ATA-2 ATA-3 ATA-4 ATA-5 ATA-6
hdparm -I /dev/hda
non-removable ATA device, with non-removable media
Model Number: Maxtor 54098H8
Serial Number: K80JR6BC
Firmware Revision: DAC10SC0
Standards:
Supported: 1 2 3 4 5 6
Likely used: 6
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
bytes/track: 0 (obsolete)
bytes/sector: 0 (obsolete)
current sector capacity: 16514064
LBA user addressable sectors = 80041248
Capabilities:
LBA, IORDY(can be disabled)
Buffer size: 2048.0kB ECC bytes: 57 Queue depth: 1
Standby timer values: spec'd by standard, no device specific minimum
r/w multiple sector transfer: Max = 16 Current = 0
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* NOP cmd
* READ BUFFER cmd
* WRITE BUFFER cmd
* Host Protected Area feature set
* look-ahead
* write cache
* Power Management feature set
* SMART feature set
SET MAX security extension
Advanced Power Management feature set
* DOWNLOAD MICROCODE cmd
HW reset results:
CBLID- above Vih
Device num = 0 determined by the jumper
Checksum: correct
--
Jean-Pierre Moreau nn@dd (s/nn/jpm-qc/; s/dd/iquebec.com/)
"Give a man a fish, and you feed him for a day. Teach him how to fish,
both will be sued by a large co. for some patent or software copyright"
append = "idebus=66"
If you already have an append line that you are uning just add the idebus=66
part to it. Then re-run lilo, just type lilo at a command prompt. Then
reboot the system, and run the 'hdparm -t -T /dev/hda' tests again to see
what the new vales are. I am using,
hdparm -c3 -d1 -u1 /dev/hda
An this is what I am getting on my laptop right now, with a ata100
controler.
/dev/hda:
Timing buffer-cache reads: 128 MB in 0.53 seconds =241.51 MB/sec
Timing buffered disk reads: 64 MB in 3.71 seconds = 17.25 MB/sec
- kyi
> Jean-Pierre Moreau wrote:
> > Uniform Multi-Platform E-IDE driver Revision: 6.31
> > ide: Assuming 33MHz system bus speed for PIO modes; override with
> > idebus=xx VP_IDE: IDE controller on PCI bus 00 dev 39
> Right there is a big kicker. in your /etc/lilo.conf file addthe following
>
> append = "idebus=66"
As I did expect, this does not work since 'my system' (and subsystems)
think it is (or is?) truly in UDMA100 mode (udma5), because for example
output of (cat /proc/ide/via) in my original post:
Transfer Rate: 99.0 MB/s
and other infos like 'UDMA(100)', ...
But thank you anyway, and I did try it.
At boot prompt, booting single user mode:
boot: mount idebus=66 single
resulting in booting messages:
VP_IDE: User given PCI clock speed impossible (66), using 33 MHz instead.
VP_IDE: Use ide0=ata66 if you want to force UDMA66/UDMA100.
and so SAME modes and speed as before:
hdparm -Tt /dev/hda #> Timing buffered disk reads ... 1.5 MB/sec
So I did as suggested by above kernel messages too:
boot: mount ide0=ata66 single
resulting in booting messages:
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
VP_IDE: ATA-66/100 forced bit set (WARNING)!!
ide0: BM-DMA at 0xa000-0xa007, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xa008-0xa00f, BIOS settings: hdc:pio, hdd:DMA
. . .
hda: 80041248 sectors (40981 MB) w/2048KiB Cache, CHS=4982/255/63, UDMA(100)
. . .
resulting in SAME modes as before and SAME low speed:
hdparm -Tt /dev/hda #> Timing buffered disk reads ... 1.5 MB/sec
I interpret 33 MHz as the clock speed of 'the IDE bus',
and the industry ATA66 and ATA100 (and more?) as kind of equivalent
of frequency because more data in parallel, in their habibutual
obfuscated way.
I am correct in this interpratation of the 33 MHz?
Being at it, I remark 'Multiple Devices' drivers enabled in my kernel,
as RAID, for example this boot message:
md: raid0 personality registered as nr 2
But I do not use RAID.
So here other questions related to my problem:
- Can RAID enabled, but not used, can be source of problems?
- How to know the many bus speeds in a system?
- More generally, are there some generic hardware diagnostic tools
in Linux? (Or not needing use of MS Windows?)
- Comments about my idea of using hdparm to REDUCE to lower udma
like udma3 or udma4?
This is something you should *not* do. The idebus option has nothing
to do with the UDMA speed.
The "system bus speed" bit means the *PCI* bus clock. Which is always
33Mhz unless you're overclocking and the PCI bus changes when you
overclock.
The reason this option exists is to allow linux to cope with things
like the VLbus which ran (I think) at 40MHz.
Setting idebus to 66 will make the timings in the code assume that the
PCI bus is running at 66MHz when it is actually running at
33Mhz. Unsurprisingly this isn't going to work on a lot of systems!
Phil
--
http://www.kantaka.co.uk/ .oOo. public key: http://www.kantaka.co.uk/gpg.txt
> hdparm -v /dev/hda
>
> multcount = 0 (off)
I have multcount = 16 (on) on my system. I think you can set this with
the -m option of hdparm.
Regards
Martin
> > $ hdparm -Tt /dev/hda
> > Timing buffer-cache reads: 128 MB in 0.71 seconds = 180.28 MB/sec
> > Timing buffered disk reads: 64 MB in 48.90 seconds = 1.31 MB/sec
> I have 150 MB/s and 23 MB/s here on my system
>
> . . .
> I have multcount = 16 (on) on my system. I think you can set this with
> the -m option of hdparm.
Thank you, Martin. I am the Original Poster (OP).
I did already tried this option, no change in speed.
When problem solved, or not if this Maxtor 54098H8 40 GB HD has hardware
problem, which I suspect more and more, I will give more info here.
A small report of new facts:
- connecting my Maxtor 40 GB (the one with 1.31 MB/s) as Slave, with
an older Quantum 13 GB as master (UDMA33), then Maxter at UDMA33 too,
I got 18 MB/s for the Quantum, and again approx 1.5 MB/s for Maxtor.
- connecty my Maxtor 40 GB as Slave in another completely different PC,
Intel Petium II-MMX 333 MHz, so completely different Mother board and
IDE controller:
I got 10 MB/s for the Master, and again 1.5 MB/s for the Maxtor 40 GB.
And note that 'other HDs' connected have always very nearly same speed
from 'hdparm -Tt ...', but the Maxtor has very varying speed, typically:
4.0 MB/s, 2.3 MB/s, 1.1 MB/s, 600 kB/s, 2.2 MB/s, ...
So I would add:
this Maxtor 54098H8 has very disk read speed, and is highly variable.
To complete my diagnostic, I would like to connect this HD in a
'complete new PC in MS Windows', but I do NOT have such a beast near,
and anyway it must have a recent system with ADA-100 support.
So my conclusion for now:
I suspect my Maxtor 40 GB HD is somewhat broken, but I find it strange
that it works at all and always, even at very low speed.
> As in previous thread (started some days ago, and still active),
> '*Slow* disk performance, suggestions anyone?'
> I have VERY SLOW disk speed, for a system that should be fast!
>
> I get disk read around 1.5 MB/s, when nominal speed for UDMA 100
> is 100 MB/s, as it should be from output of commands below.
Just so you know, 100MB/s is the maximum transfer rate of the UDMA 100
interface, not of the drive itself. You'll probably get something more like
30MB/s with that drive (The trick is that if you attach multiple drives,
they're basically sharing that 100MB/s, so the maximum transfer rate of the
interface is almost always going to be greater than the maximum transfer rate
of any one drive).
> I get SAME speed when I boot with 'Primary Master = None' in
> CMOS setup (I boot from diskette, root= ...), resulting in drive
> being in UDMA33 mode (and 1.5 MB/s is slow for this too!)
>
> I have this system for some year now, and I always postponed these
> problems, since it is 'workable' because of the 256 MB ram.
> No more workable because now I want to capture from video camera.
Is there a second drive on the primary IDE cable? If there's another
drive (like a CD-ROM) then perhaps that's forcing the main hard drive to run
at the transfer rate of the other drive. Make sure your hard drive is alone
on its IDE cable when you test its speed.
Is there any chance that the hard drive itself is not in UDMA-100
mode, even if the motherboard is? Usually the manufacturer has a utility to
change that.
You could try turning IDE Block mode on, as Martin Blume suggested.
Try "hdparm -m8 /dev/hda". Having said that, I personally don't see a major
performance difference when I turn it off in my system, so who knows?
> Jean-Pierre Moreau wrote:
> > . . .
> > I get disk read around 1.5 MB/s, when nominal speed for UDMA 100
> > is 100 MB/s, as it should be from output of commands below.
>
> Just so you know, 100MB/s is the maximum transfer rate of the UDMA 100
> interface, not of the drive itself. You'll probably get something more like
> 30MB/s with that drive (The trick is that if you attach multiple drives,
> they're basically sharing that 100MB/s, so the maximum transfer rate of the
> interface is almost always going to be greater than the maximum transfer rate
> of any one drive).
Thank you Marcus, I knew it 'approximately', your statements are clear.
> Is there a second drive on the primary IDE cable? If there's another
I tested it with only this hard drive in system. And as I said in another post
in this thread (today?), I even tried it in a completely different hardware,
for SAME speeds (OS was RedHat-7.3, so no, did not try it with MS Windows
based system!)
> Is there any chance that the hard drive itself is not in UDMA-100
> mode, even if the motherboard is? Usually the manufacturer has a utility
> to change that.
I don't know. I do not think so, at least I don't believe the 'basic mode'
would be as slow as this.
Probably these 'utilities' require MS Windows? If need be, I can arrange to
connect the HD in a Windows system (but an 'old' one, not itself UDMA100!).
But then, I don't know which tools to measure its speed meaningfully
on MS systems.
And there is possibly no such utilities for this Maxtor 54098H8, because
I did not saw it in my extensive google searches (Web and Groups); this
is not a proof, I know.
> Try "hdparm -m8 /dev/hda". Having said that, I personally don't see a major
I did. As expected, no difference in my case.
I more and more think this HD has an hardware problem! The only remaining
tests are connecting it to a *modern* MS Windows system, but I think
Linux is not the problem with recent kernels.
Thank you very much for your efforts,
Hell thats way too slow for a 40GB drive. Are you running with DMA enabled on
that drive? Do you see a lot of CPU activity when you access the drive?
Transfer rates of 1MB/s are probably the result of running in 16 bit I/O mode,
with no multicount and no DMA.
Try
hdparm -d1 -c3 -m16 -k1 /dev/hda
That gives you DMA access, async read, 16 block multicount. You can probably go
further and really bump up the DMA accesses (read the hdparm manual!).
Cheers,
Toby Haynes
--
Toby Haynes
The views and opinions expressed in this message are my own, and do
not necessarily reflect those of IBM Canada.
> Hell thats way too slow for a 40GB drive. Are you running with DMA enabled on
> that drive? Do you see a lot of CPU activity when you access the drive?
> Transfer rates of 1MB/s are probably the result of running in 16 bit I/O
> mode, with no multicount and no DMA.
(This is about my 1.5 MB/s (and highly variable) Maxtor 54098H8).
I know that is too slow, this is the reason of this posting.
I am the OP, and see the original post of this thread, where all
outpouts of commands I know of show the drive (and controller) is in
UDMA100 mode.
And as said in another post of this thread, I did connect another
HD on same IDE channel, Primary. A DMA33 limited HD, than the new
one get 18 MB/s, and the bad Maxtor (in DMA33 too) got its 1.5 MB/s.
I connected the bad maxtor in completely different system
(Linux RedHat-7.3, but Intel based instead of AMD and Via IDE),
all was then in DMA(33) mode, and other HDs got 8 MB/s, and bad Maxtor
always at its 1.5 MB/s!
This is why only remaining test (I know of) is try it in moder MS System,
but I think the drive had a hardware defect.
--
Jean-Pierre Moreau aa@bb (s/aa/jpm-qc/; s/bb/iquebec.com/)