# [FAQ?] DMA - the revenge [Si ma ... RISOLTO]

## Danilo

Il Dma (si lo so se ne e' gia' parlato qui e su google): non riesco ad attivarlo.  :Embarassed: 

Proprio oggi dopo un emerge -e world mi sono accorto che il mio orologio e' indietreggiato di 1 ora dopo 12 ore di compilazione...

Ricordavo il problema sollevato sul forum e sono andato a cercare la soluzione (per inciso nn sapevo cosa fosse il DMA ed ora invece mi fa gola...)  :Twisted Evil: 

Ho un Athlon700 con sheda madre Asus k7v (Apollo 133), dalle notizie ancora presenti sulla rete ho l'ultra DMA 66 a disposizione.  :Rolling Eyes: 

ho provato di tutto. Nisba. Qualcuno mi puo' dare una mano?

Ovviamente ho nel kernel :

 [*]       Use PCI DMA by default when available

Il check mi da:

```

 hdparm -tT /dev/hda

/dev/hda:

 Timing buffer-cache reads:   528 MB in  2.00 seconds = 263.47 MB/sec

 Timing buffered disk reads:   22 MB in  3.20 seconds =   6.88 MB/sec

```

Invece i settaggi:

```

hdparm -d1 /dev/hda

/dev/hda:

 setting using_dma to 1 (on)

 HDIO_SET_DMA failed: Operation not permitted

 using_dma    =  0 (off)

```

```

 hdparm -tT /dev/hda

/dev/hda:

 Timing buffer-cache reads:   528 MB in  2.00 seconds = 263.47 MB/sec

 Timing buffered disk reads:   22 MB in  3.20 seconds =   6.88 MB/sec

```

```
hdparm -c1 -d1 -X66 /dev/hda

/dev/hda:

 setting 32-bit IO_support flag to 1

 setting using_dma to 1 (on)

 HDIO_SET_DMA failed: Operation not permitted

 setting xfermode to 66 (UltraDMA mode2)

 IO_support   =  1 (32-bit)

 using_dma    =  0 (off)

```

```

hdparm -I /dev/hda

/dev/hda:

ATA device, with non-removable media

        Model Number:       SAMSUNG SV2044D

        Serial Number:      0191J1FN458731

        Firmware Revision:  MM100-45

Standards:

        Used: ATA/ATAPI-4 T13 1153D revision 17

        Supported: 4 3 2 1 & some of 5

Configuration:

        Logical         max     current

        cylinders       16383   16383

        heads           16      16

        sectors/track   63      63

        --

        bytes/track: 34902      bytes/sector: 554

        CHS current addressable sectors:   16514064

        LBA    user addressable sectors:   39862368

        device size with M = 1024*1024:       19464 MBytes

        device size with M = 1000*1000:       20409 MBytes (20 GB)

Capabilities:

        LBA, IORDY(cannot be disabled)

        Buffer size: 472.0kB    bytes avail on r/w long: 4      Queue depth: 1

        Standby timer values: spec'd by Vendor, no device specific minimum

        R/W multiple sector transfer: Max = 16  Current = 16

        DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4

             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

           *    DEVICE RESET cmd

           *    Look-ahead

           *    Write cache

           *    Power Management feature set

                SMART feature set

HW reset results:

        CBLID- above Vih

        Device num = 1

```

Mi sa che sara' una lotta lunga...  :Sad: 

GrazieLast edited by Danilo on Thu Mar 04, 2004 1:15 am; edited 1 time in total

----------

## MyZelF

Nel kernel hai compilato il supporto per il southbridge della tua scheda madre?

```
<*>     VIA82CXXX chipset support
```

----------

## Danilo

 *MyZelF wrote:*   

> Nel kernel hai compilato il supporto per il southbridge della tua scheda madre?
> 
> ```
> <*>     VIA82CXXX chipset support
> ```
> ...

 

No ma perchè secondo www.k7v.com la k7v ha 

```

VIA KX133

VIA 371 North Bridge

VIA 686A South Bridge
```

Ho anche fatto un check sul file c del kernel (via.c mi sembra) ma il mio south bridge non compare tra quelli supportati ed ho paura che sia pericoloso settare un chipset x un altro...

Per  questo:

 *Danilo wrote:*   

> Mi sa che sara' una lotta lunga...  

 

----------

## Dancy

anch'io ho avuto dei grossi problemi ma poi ho risolto

https://forums.gentoo.org/viewtopic.php?t=131905&highlight=gentoo+perditempo

comunque prova

```
/etc/init.d/hdparm start

hdparm /dev/hda 
```

e vedi cosa ti dice (naturalmente il kernel deve avere i moduli corretti!!)  :Wink: 

----------

## MyZelF

 *Danilo wrote:*   

> No ma perchè secondo www.k7v.com la k7v ha 
> 
> 

 

Sinceramente mi fido di più del manuale della scheda:

ftp://www.asus.it/pub/ASUS/mb/slota/k7v/k7v-101.pdf

dove si dice che è un VT82C686A. Quindi deduco che su quel sito con 686A intendano quello.   :Rolling Eyes: 

----------

## randomaze

 *MyZelF wrote:*   

> dove si dice che è un VT82C686A. Quindi deduco che su quel sito con 686A intendano quello.  

 

Sarei dello stesso parere di MyZelF.

Comunque credo che chiederlo alla scheda tagli la testa al toro:

```

#lspci | grep -i via

```

----------

## Danilo

//            :Razz:   :Razz:   :Razz:   :Razz:   :Razz:   :Razz:   :Razz:   :Razz:   :Razz:   :Razz: 

//                S T U P E N D O 

//            :Razz:   :Razz:   :Razz:   :Razz:   :Razz:   :Razz:   :Razz:   :Razz:   :Razz:   :Razz: 

Stasera ho provato. 

```

 Stasera  o;

  o.setFunziona(true);  // <-- Aggiunto

  if(o.funziona())

      o.checkMesgForum()->setRisolto();         

   else

      o.checkMsgForum()->comunicateFail();    

```

Grazie a TUTTI E TRE....

Il disco ora:

```

 hdparm -c1 -d1 -X66 /dev/hda

/dev/hda:

 setting 32-bit IO_support flag to 1

 setting using_dma to 1 (on)

 setting xfermode to 66 (UltraDMA mode2)

 IO_support   =  1 (32-bit)

 using_dma    =  1 (on)

hdparm -tT /dev/hda

/dev/hda:

 Timing buffer-cache reads:   560 MB in  2.01 seconds = 279.02 MB/sec

 Timing buffered disk reads:   68 MB in  3.08 seconds =  22.11 MB/sec

```

 :Cool:   :Cool:     Il buffered disk reads e'magicamente  X 4.   :Cool:   :Cool: 

Quello che non capisco e' perche' mi permette di settare da udma2 a udma4 (udma5 fallisce) ma i tempi di risposta tra i vari udma sono gli stessi...   :Shocked: 

inoltre

```
hdparm -I /dev/hda

...

     DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4

             Cycle time: min=120ns recommended=120ns

```

Udma e' UltraDma ma che e' mdma  :Question: 

Leggero' il man (uale).  :Rolling Eyes: 

O il doc (ument)

Grazie di nuovo...     :Wink: 

----------

