Problem
A bit strange thing with udma modes. I tried enabling udma with hdparm with command
Code:
hdparm -d1 /dev/hda
This seems to get set, but when I look the settings immeadiately after changing them it looks like everything is ok (using_dma = 1). But after a while I try to see the settings again, the system hangs for a moment and then tells me that using_dma = 0.
Also, on the other hand is seems that udma5 is in use, which can't be true. Disk is cabable of ATA133, so I'd very much like to get udma6 enabled.
So let's dig in...
Basic Information
Distro: Fedora Core 3
Kernel: 2.6.9-1.678_FC3
hdparm: v5.7
HDA: Maxtor 6Y200P0 (only IDE device, jumper on master)
Mobo: Asus A7A266 (alimagic chipset)
Some outputs
So... it's slow allright:
Code:
# hdparm -tT /dev/hda
/dev/hda:
Timing cached reads: 836 MB in 2.00 seconds = 417.44 MB/sec
Timing buffered disk reads: 12 MB in 3.01 seconds = 3.98 MB/sec
So, let's see what is has eaten:
Code:
# hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
IO_support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 0 (off)
keepsettings = 1 (on)
readonly = 0 (off)
readahead = 256 (on)
geometry = 24792/255/63, sectors = 203928109056, start = 0
Right, so the using_dma is off. What about more detailed information:
Code:
# hdparm -i /dev/hda
/dev/hda:
Model=Maxtor 6Y200P0, FwRev=YAR41BW0, SerialNo=Y623M12E
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57
BuffType=DualPortCache, BuffSize=7936kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=268435455
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
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: (null):
* signifies the current active mode
This is a bit strange, isn't it? This claims that udma5 is enabled, but with that transfer rate it can't be true.
Finaly... I noticed that when I try...
Code:
# hdparm -d1 /dev/hda
... this happens in dmesg:
Code:
ide: failed opcode was: unknown
hda: dma_timer_expiry: dma status == 0x21
hda: DMA timeout error
hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }
And what dmesg also tells, this is from the boot, I assume:
Code:
hda: cannot use LBA48 DMA - PIO mode will be used for accessing sectors > 268435456
hda: 398297088 sectors (203928 MB) w/7936KiB Cache, CHS=24792/255/63, UDMA(100)
hda: cache flushes supported
hda:<4>hda: dma_timer_expiry: dma status == 0x21
hda: DMA timeout error
hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }
Right... So I'm running out of options. At least what happened when I changed from FC2 to FC3 is that LBA48 works (due to kernel update, of course), so I can get all the space of this 200GB drive, but not the speed of ATA133, as it should be.
Please, help! Thanks! A lot!
(Yeah, this is probably yet another
-thing)
p.s. I would highly appreciate if somebody could phrase his answer so that even a newbie like me can understand it, thanks again!