Re: Re: Help with hdparm
Hello again Bob, MKolb and debian users:
To re-start this with everything clear, I also have a Fic SD11 motherboard,
here is my exact configuration:
Processor: AMD K7 500 Mhz
HD: Seagate Barracuda 60GB ATA/100 (80 Pin cable conected to ide0)
Memory: 256 MB SDRAM 133 Mhz
The motherboard users manual and website says the south bridge VIA Super
South (686A) supports UDMA 66.
I knew what kind of hardware had my motherboard but here is what "lspci"
dropped out:
00:00.0 Host bridge: Advanced Micro Devices [AMD] AMD-751 [Irongate] System
Controller (rev 23)
00:01.0 PCI bridge: Advanced Micro Devices [AMD] AMD-751 [Irongate] AGP
Bridge (rev 01)
00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev
1b)
00:07.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 06)
00:07.2 USB Controller: VIA Technologies, Inc. UHCI USB (rev 0e)
00:07.4 SMBus: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 20)
00:09.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
01:05.0 VGA compatible controller: nVidia Corporation Vanta [NV6] (rev 15)
Due to this, here is the kernel configuration I thought was best for my
system:
Kernel 2.4.18
This are the options I have selected in the branch ATA/IDE/MFM/RLL support.
ATA/IDE/MFM/RLL support
IDE, ATA and ATAPI Block devices --->
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
<*> Include IDE/ATA-2 DISK support
<*> SCSI emulation support
[*] Generic PCI IDE chipset support
? ? [*] Sharing PCI IDE interrupts support
? ? [*] Generic PCI bus-master DMA support
[*] Use PCI DMA by default when available
[*] VIA82CXXX chipset support
Here is what "hdparm -i /dev/hda" showed:
/dev/hda:
Model=ST360021A, FwRev=3.19, SerialNo=3HR0YT2A
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=2048kB, MaxMultSect=16, MultSect=16
CurCHS=17475/15/63, CurSects=16513875, LBA=yes, LBAsects=117231408
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 *mdma2 udma0 udma1 udma2
AdvancedPM=no WriteCache=enabled
Drive Supports : Reserved : ATA-1 ATA-2 ATA-3 ATA-4 ATA-5
Therefore my HD is capable of udma2.
Actually I have hdparm configured in multiword dma2 with this parameters:
hdparm -X34 -d1 -u1 -c3 -m16 /dev/hda
"hdparm /dev/hda" shows:
/dev/hda:
multcount = 16 (on)
I/O support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 7297/255/63, sectors = 117231408, start = 0
busstate = 1 (on)
And "hdparm -Tt /dev/hda" will drop something like this:
/dev/hda:
Timing buffer-cache reads: 128 MB in 0.83 seconds =154.22 MB/sec
Timing buffered disk reads: 64 MB in 4.76 seconds = 13.45 MB/sec
Whenever I change the configuration to use any level of udma the HD will send
many lines of dma errors to end up with the reset of Ide0 and old
configuration with multiword dma.
For example:
hdparm -X64 -d1 -u1 -c3 -m16 /dev/hda
/dev/hda:
setting 32-bit I/O support flag to 3
setting multcount to 16
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
setting xfermode to 64 (UltraDMA mode0)
multcount = 16 (on)
I/O support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 1 (on)
### Then shows ###
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
ide0: reset: success
As I try to activate a higher level of udma this errors are repeated more
times, for example:
hdparm -X65 -d1 -u1 -c3 -m16 /dev/hda
/dev/hda:
setting 32-bit I/O support flag to 3
setting multcount to 16
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
setting xfermode to 65 (UltraDMA mode1)
multcount = 16 (on)
I/O support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 1 (on)
### Then shows ###
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
ide0: reset: success
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
hda: dma_intr: status=0x51 {DriveReady SeekComplete Error}
hda: dma_intr: status=0x84 {DriveStatusError BadCRC}
ide0: reset: success
When the system starts the kernel configuration itself tryes to activate the
higher DMA mode and drops errors like the ones i have just posted. This does
not happen because any script I added to activate hdparm. I do have that
script as this list told me with hwtools and it's configurated with multiword
dma as shows at system start before the deamons are started.
I tried many configurations of hdpram but switching to udma with any other
configuration will end up with errors.
If anyone has any ideas on how to solve this I will be glad to try them all.
Maybe I have something configured wrong or skipped anything important.
Thanks for your time (this was a looooong mail), and for any help.
Chainy.
Sorry for my spelling or weird expressions, this is not my native language :)
On Friday 30 August 2002 07:22, Bob Proulx wrote:
> MKolb@haitec.de <MKolb@haitec.de> [2002-08-29 09:58:12 +0200]:
> > On 28.08.2002 18:57:42 bob wrote:
> > > When I get time I will rebuild the kernel without SMP, and with better
> > > optimizations and post the results.
> >
> > It is not the SMP Flag.
>
> I know. But it is posible that the #ifdef'd code for SMP is somehow
> affecting whether DMA is on or off. Or possibly affecting other
> performance. I expect it to be slightly worse with SMP because of the
> semaphore overhead.
>
> > You do not have activated DMA in this kernel (using_dma = 0 (off))
>
> Yes, but why not? That is the stock bf24 kernel. Why is DMA off with
> the stock bf24 kernel? Why does recompiling it locally using the same
> configuration enable DMA? I don't know. I am only reporting the data.
>
> > Can you report me, which North/South-Bridge you have on your FIC SD-11
> > Board.
>
> If you have an FIC motherboard you should know to be able to find all
> of the specs on the FIC home page.
>
> http://www.fic.com.tw/fic/products/mainboards/mbspec/sd11/sd11intro.htm
>
> Bob
Reply to: