# hdparm non mi attiva il dma ?!

## teknux

ciao a tutti,

smanazzando con hdparm e un po' di guide ho pensato di ottimizzare la velocità del disco. faccio un po' di prove e noto che se attivo il dma e I/O a 32 bit mi va mooolto più lento di prima (da 19mb/s a ~6mb/s). poco importa, continuo a fare prove e raggiungo risultati un po' migliori.

così edito il /etc/conf.d/hdparm ed inserisco lo script ngli rc con rc-update...

al successivo reboot provo un:

```
hdparm -t /dev/hda
```

e noto che il dma è disabilitato, provo a farlo a mano ed ottengo:

```
/dev/hda:

 setting using_dma to 1 (on)

 HDIO_SET_DMA failed: Operation not permitted

 using_dma    =  0 (off)

```

come mai??

tanto per cronaca ho un quantum fireball da 13gb, ed è sempre andato bene   :Rolling Eyes: 

grazie per eventuali aiuti  :Very Happy: 

saluti,

tek

----------

## shev

Se prima che tu mettessi mano alla conf di hdparm il dma andava, e non hai cambiato altro, mi pare evidente che il problema sta nelle flags che hai impostato. Magari dicci che opzioni hai impostato (parlo di hdparm) e quanti più dati possibili.

----------

## fedeliallalinea

Attiva manualmente il dma con

```
# hdparm -d1 /dev/hda
```

poi vedi se te lo ha attivato (la var deve essere a 1) con

```
# hdparm -d /dev/hda
```

Se te lo attiva vuol dire (come ben detto da Shev) il problema sono le flag

che hai impostato.

----------

## shev

 *fedeliallalinea wrote:*   

> Attiva manualmente il dma con
> 
> ```
> # hdparm -d1 /dev/hda
> ```
> ...

 

Scusa se ti "correggo/faccio notare" (sembra ce l'abbia con te ultimamente, ma è solo un caso   :Laughing:   ), ma credo l'abbia già fatto. Infatti dice di averlo fatto manualmente, e l'output che posta è quello tipico di hdparm -d1  :Wink: 

----------

## fedeliallalinea

 *Shev wrote:*   

>  *fedeliallalinea wrote:*   Attiva manualmente il dma con
> 
> ```
> # hdparm -d1 /dev/hda
> ```
> ...

 

Fra un po' smetto di postare. Miiiii continuo a sbagliare (che cacchio) .  :Sad: 

----------

## teknux

grazie delle risposte ragazzi,

purtroppo i comandi che mi avete consigliato di usare sono proprio quelli usati, infatti sia in /etc/conf.d/hdparm che a mano, le opzioni usate corrispondevano a questa:

```

hdparm -c1 -d1 /dev/hda

```

purtroppo, l'opzione per attivare il dma (-d1)  non va, producendo l'output che ho copiato nel post precedente   :Sad: 

ops, mi accorgo solo ora che shev ha capito al volo il problema  :Very Happy: 

idee? consigli? problemi?

grazie,

tek

----------

## shev

 *teknux wrote:*   

> 
> 
> idee? consigli? problemi?
> 
> 

 

Ma prima funzionava il dma (prima che smanettassi con hdparm)? Se dai solo l'opzione -d1 a hdparm (così rendiamo giustizia a fedeliallaninea  :Wink:  ) te lo attiva (a meno che tu avessi già provato, non ho capito se hai provato sia con "-d1" che con "-d1 -c1")?

----------

## cerri

Siamo sicuri che il supporto per il tuo chipset ci sia nel kernel?

----------

## teknux

 *Shev wrote:*   

> 
> 
> Ma prima funzionava il dma (prima che smanettassi con hdparm)? Se dai solo l'opzione -d1 a hdparm (così rendiamo giustizia a fedeliallaninea  ) te lo attiva (a meno che tu avessi già provato, non ho capito se hai provato sia con "-d1" che con "-d1 -c1")?

 

si funzionava, e poi non è che avessi smanettato poi tanto a dirla tutta, ho solo usato opzioni -c1 e -d1. Ho anche usato il solo -d1, visto che -c1 funziona tranquillamente...

 *cerri wrote:*   

> 
> 
> Siamo sicuri che il supporto per il tuo chipset ci sia nel kernel?

 

mmm bella domanda, a dire il vero ho ricompilato il kernel da 2.4.20 a 2.4.21 proprio in questi giorni, ma non ho toccato molto il mio solito "config", tranne per quanto riguarda il frame-buffer ed il supporto alla scheda grafica, nulla che riguardasse altro...

eventualmente, visto che mi hai confermato il dubbio, vado a dare un'occhiata nella configurazione, anche se mi pare quantomeno strano non avendo toccato niente... bah!

a presto,

tek

----------

## paolo

```
#dmesg 
```

e controlliamo insieme  :Smile: 

ByEZz,

Paolo

----------

## teknux

purtroppo non ho rilevato errori in nessun file di log, tantomeno con dmesg  :Sad: 

vediamo se riesco entro oggi ad occuparmi del kernel...

grazie dei vostri consigli intanto  :Wink: 

----------

## Frez

ho ricevuto lo stesso messaggio quando ho cambiato motherboard (nforce2)

_credevo_ che il dma fosse abilitato, poi controllando meglio ho notato che non lo era

ho attivato la compilazione del modulo amd74xx (IDE, ATA and ATAPI Block devices  ---> AMD and nVidia IDE support, con kernel vanilla-2.4.22)

e dopo il modprobe il dma e' stato attivato senza errori

colgo l'occasione per salutare tutti visto che questo e' il mio primo post   :Embarassed: 

pur non essendo un esperto spero di essere utile ogni tanto ... e di riuscire a limitare vaccate   :Razz: 

----------

## fedeliallalinea

 *Frez wrote:*   

> ho ricevuto lo stesso messaggio quando ho cambiato motherboard (nforce2)
> 
> _credevo_ che il dma fosse abilitato, poi controllando meglio ho notato che non lo era
> 
> ho attivato la compilazione del modulo amd74xx (IDE, ATA and ATAPI Block devices  ---> AMD and nVidia IDE support, con kernel vanilla-2.4.22)
> ...

 

Benvenuto Frez. Comunque penso che le vaccate tutti le abbiamo fatto.

----------

## koma

 *Frez wrote:*   

> ho ricevuto lo stesso messaggio quando ho cambiato motherboard (nforce2)
> 
> _credevo_ che il dma fosse abilitato, poi controllando meglio ho notato che non lo era
> 
> ho attivato la compilazione del modulo amd74xx (IDE, ATA and ATAPI Block devices  ---> AMD and nVidia IDE support, con kernel vanilla-2.4.22)
> ...

 

Ciao e benvenuto  :Smile: 

----------

## JacoMozzi

Benvenuto Frez   :Very Happy: 

Jaco

----------

## bubble27

Ciao .....posto qui x nn aprire un'altro post altrimenti mi sfrattano  :Wink:  da gentoo !!! ecco il mio problema, ho voluto impostare l'hdparm al boot .... xò ricevo un messaggio.... del tipo..

 * Skipping cdrom0 hdparm does not support SCSI devices.

 * Running hdparm on disc0...                                                              [ ok ]

/etc/conf.d/hdparm l'ho lasciato invariato, ho un kernel 2.4.20-gentoo-sources,

alla fine il messaggio è + che chiaro xò se qualcuno di voi sa che è possibile eliminare, o sa da cosa dipende......posti   :Laughing:  .......

ciao Gentooaglia

----------

## fedeliallalinea

 *bubble27 wrote:*   

>  * Skipping cdrom0 hdparm does not support SCSI devices.
> 
>  * Running hdparm on disc0...                                                              [ ok ]

 

Scometto che il tuo cdrom0 e' il masterizzatore con attiva l'emulazione scsi. 

Se e' cosi' e' normale perche' hdparm e' un supporto per periferiche ide

----------

## bubble27

 *fedeliallalinea wrote:*   

>  *bubble27 wrote:*    * Skipping cdrom0 hdparm does not support SCSI devices.
> 
>  * Running hdparm on disc0...                                                              [ ok ] 
> 
> Scometto che il tuo cdrom0 e' il masterizzatore con attiva l'emulazione scsi. 
> ...

 

Si fedeliallalinea   :Surprised:  c'hai preso in pieno .... quindi nn c'è verso ???? 

a meno che nn edito il file specificandogli di guardare solo l'hardisk !!! oppure farsi uno scriptino pesonalizzato  :Rolling Eyes:  ..ci penserò ....

grazie

ciao Gentooaglia

----------

## bsolar

Anche sui device emulati SCSI è possibile attivare DMA semplicemente modificando /proc/ide/hd[x]/settings.

Prova:

```
# echo "using_dma:1" > /proc/ide/hd[x]/settings
```

----------

## teknux

forse ho capito male io, tuttavia...

```

brainbox ~ $ cat /etc/conf.d/hdparm 

# Copyright 2003 Gentoo Technologies, Inc. 

# Distributed under the terms of the GNU General Public License, v2 or later

# $Header: /home/cvsroot/gentoo-x86/sys-apps/hdparm/files/hdparm-conf.d,v 1.1 2003/03/01 21:17:39 sethbc Exp $

# You can either set hdparm arguments for each drive using disc*_args and cdrom*_args..

# eg.

# disc0_args="-d1 -X66"

# disc1_args"-d1"

# cdrom0_args="-d1"

# Or, you can set hdparm options for ALL drives using all_args..

# eg.

# this mimics the behavior of the current script

all_args="-d1"

```

quindi se vuoi attivare il dma solo su HD basta riferirti solo a questo e commentando la parte relativa al cd...

saluti,

tek

EDIT: ops bsolar ha postato prima di me e con una soluzione che non conoscevo  :Razz:  buono a sapersi  :Wink: Last edited by teknux on Thu Oct 02, 2003 11:23 am; edited 1 time in total

----------

## fedeliallalinea

 *bsolar wrote:*   

> Anche sui device emulati SCSI è possibile attivare DMA semplicemente modificando /proc/ide/hd[x]/settings.
> 
> Prova:
> 
> ```
> ...

 

Ecco questa proprio non la sapevo. Grazie bsolar.

----------

## bubble27

One moment   :Confused:  ........ 

# echo "using_dma:1" > /proc/ide/hd[x]/settings <---- x per cosa sta, l'hardisk o il cdrom ??? il cdrom suppongo !!! xò da un cat fatto ...

Lowenbrau root # cat /proc/ide/hdc/settings 

name                    value           min             max             mode

----                    -----           ---             ---             ----

bios_cyl                0               0               1023            rw

bios_head               0               0               255             rw

bios_sect               0               0               63              rw

current_speed           34              0               69              rw

ide_scsi                0               0               1               rw

init_speed              34              0               69              rw

io_32bit                0               0               3               rw

keepsettings            0               0               1               rw

log                     0               0               1               rw

nice1                   1               0               1               rw

number                  2               0               3               rw

pio_mode                write-only      0               255             w

slow                    0               0               1               rw

transform               1               0               3               rw

unmaskirq               0               0               1               rw

using_dma               1               0               1               rw

 :Confused:  scusate le righe sballate ....  cmq nell'ultima riga il dma nn è già attivato ???

questo era x il cdrom, mentre per l'hd... (posto solo la riga relativa al dma)

Lowenbrau root # cat /proc/ide/hda/settings 

using_dma               1               0               1               rw

anche questa mi sembra abilitato !!!   :Sad:  booo forse mi sbaglio.... cmq proverò !!! grazie bsolar

----------

## bsolar

Si il DMA è attivato. Bisogna attivarlo manualmente (o via hdparm o con questo trucchetto) solo se non viene fatto automaticamente dal kernel al boot.

Controlla dmesg, dovrebbe menzionare cosa viene usato per quale device.

----------

## bubble27

 *bsolar wrote:*   

> Si il DMA è attivato. Bisogna attivarlo manualmente (o via hdparm o con questo trucchetto) solo se non viene fatto automaticamente dal kernel al boot.
> 
> Controlla dmesg, dovrebbe menzionare cosa viene usato per quale device.

 

 :Idea:  e se invece editassi /etc/conf.d/hdparm aggiungendo quella riga che mi hai consigliato ????in quel modo il dma cmq verrebbe attivato xò probabilmente otterrei cmq il messaggio di Warning  :Confused:  , che dite ??? 

ciao Gentooaglia

----------

## bsolar

 *bubble27 wrote:*   

>   e se invece editassi /etc/conf.d/hdparm aggiungendo quella riga che mi hai consigliato ????in quel modo il dma cmq verrebbe attivato xò probabilmente otterrei cmq il messaggio di Warning  , che dite ???

 

Quello è un file di configurazione, non uno script.

----------

## bubble27

 *bsolar wrote:*   

>  *bubble27 wrote:*     e se invece editassi /etc/conf.d/hdparm aggiungendo quella riga che mi hai consigliato ????in quel modo il dma cmq verrebbe attivato xò probabilmente otterrei cmq il messaggio di Warning  , che dite ??? 
> 
> Quello è un file di configurazione, non uno script.

 

Hai ragione   :Rolling Eyes:  .... !!!  :Idea:  e se la mettessi in /etc/init.d/hdparm ???? questo è uno script ??? 

ciao Gentooaglia

----------

## bsolar

Ma non ho capito una cosa, da quello che hai detto DMA viene attivato, quindi per quale motivo ti serve attivarlo a mano?

Posta il risultato di:

```
dmesg | grep DMA
```

----------

## bubble27

 *bsolar wrote:*   

> Ma non ho capito una cosa, da quello che hai detto DMA viene attivato, quindi per quale motivo ti serve attivarlo a mano?
> 
> Posta il risultato di:
> 
> ```
> ...

 

Non so se viene attivato, durante il boop mi posta un Warning, esattamente:

* Skipping cdrom0 hdparm does not support SCSI devices. 

* Running hdparm on disc0... [ ok ]

poi ho letto il tuo consiglio, allora ho provato a fagli prima un cat, e sinceramente mi sembra già attivato il dma cmq ancora nn rebootto quindi nn so !!

Lowenbrau root # dmesg | grep DMA

    ide0: BM-DMA at 0x1800-0x1807, BIOS settings: hda:DMA, hdb:pio

    ide1: BM-DMA at 0x1808-0x180f, BIOS settings: hdc:DMA, hdd:pio

hda: 78177792 sectors (40027 MB) w/1819KiB Cache, CHS=4866/255/63, UDMA(100)

questo è tutto quello che posta il dmesg ......

ciao Gentooaglia

----------

## koma

scusate se mi intrometto volevo un giudizio...

```
KomaPC root # hdparm -t /dev/hda

/dev/hda:

 Timing buffered disk reads:   80 MB in  3.02 seconds =  26.49 MB/sec

KomaPC root # hdparm -t /dev/hdb

/dev/hdb:

 Timing buffered disk reads:  122 MB in  3.04 seconds =  40.07 MB/sec

KomaPC root # 
```

Che ne dite? I valori sono decenti? sono 2 hd  da 40gb

----------

## bubble27

 *koma wrote:*   

> scusate se mi intrometto volevo un giudizio...
> 
> ```
> KomaPC root # hdparm -t /dev/hda
> 
> ...

 

Non so quale sia la media x giudicare se sia buono o no xò confrontando siamo li...

Lowenbrau root # hdparm -t /dev/hda

/dev/hda:

 Timing buffered disk reads:  120 MB in  3.04 seconds =  39.52 MB/sec

idem anche a me è un hd 40GB

ciao Gentooalglia

----------

## fedeliallalinea

 *koma wrote:*   

> scusate se mi intrometto volevo un giudizio...
> 
> ```
> KomaPC root # hdparm -t /dev/hda
> 
> ...

 

Penso siano buoni i miei sul portatile sono

```
# hdparm -t /dev/hda

/dev/hda:

 Timing buffered disk reads:   52 MB in  3.01 seconds =  17.28 MB/sec

```

----------

## bsolar

 *bubble27 wrote:*   

> Non so se viene attivato, durante il boop mi posta un Warning, esattamente:
> 
> * Skipping cdrom0 hdparm does not support SCSI devices. 
> 
> * Running hdparm on disc0... [ ok ]

 

Quello riguarda l'init script /etc/init.d/hdparm, che serve solo se il kernel nona attiva automaticamente DMA.

 *bubble27 wrote:*   

> Lowenbrau root # dmesg | grep DMA
> 
>     ide0: BM-DMA at 0x1800-0x1807, BIOS settings: hda:DMA, hdb:pio
> 
>     ide1: BM-DMA at 0x1808-0x180f, BIOS settings: hdc:DMA, hdd:pio
> ...

 

DMA viene attivato per hda e hdc (senza bisogno di hdparm).

----------

## bubble27

 *bsolar wrote:*   

>  *bubble27 wrote:*   Non so se viene attivato, durante il boop mi posta un Warning, esattamente:
> 
> * Skipping cdrom0 hdparm does not support SCSI devices. 
> 
> * Running hdparm on disc0... [ ok ] 
> ...

 

un'attimo xò bsolar queste opzioni sono avvenute a script già startato (/etc/init.d/hdparm/), cmq ho capito.... grazie tante.. adesso faccio un pò di verifiche e poi posto la conferma !!!

ciao Gentooaglia

----------

## bsolar

 *bubble27 wrote:*   

> un'attimo xò bsolar queste opzioni sono avvenute a script già startato (/etc/init.d/hdparm/)

 

No, quello appare quando il kernel rileva ciò che è attaccato ai canali IDE, molto prima che gli script vengano fatti partire. Nel tuo sistema non hai nessun motivo di usare hdparm per attivare il DMA per hda e hdc.

----------

## bubble27

 *bsolar wrote:*   

>  *bubble27 wrote:*   un'attimo xò bsolar queste opzioni sono avvenute a script già startato (/etc/init.d/hdparm/) 
> 
> No, quello appare quando il kernel rileva ciò che è attaccato ai canali IDE, molto prima che gli script vengano fatti partire. Nel tuo sistema non hai nessun motivo di usare hdparm per attivare il DMA per hda e hdc.

 

Ah   :Very Happy:  OK, se me lo dici tu !!!!!!

grassie bsolar...

ciao Gentooaglia

----------

