[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: