Newsgroup: it.comp.os.linux.iniziare
Titolo: Attivazione DMA su ASUS P4PE <LUNGO>

Ciao a tutti. Mi scuso se il post e' lungo: ho cercato di elencare quante
piu' informazioni utili potevo per non far perdere tempo.
A casa ho Debian Sarge con kernel 2.4.25 su una stazione con mainboard ASUS
P4PE, 512 MB RAM e HD Maxtor Diamond Plus 9 (su /dev/hda));
perin:/# lspci
[...]
00:1f.1 IDE interface: Intel Corp. 82801DB Ultra ATA Storage Controller (rev 
02)                                                             <------------
[...]
 
Il problema è il DMA:i trasferimenti di file erano macroscopicamente lenti:
perin:/etc/modutils# hdparm -tT /dev/hda
/dev/hda:
 Timing cached reads:   1720 MB in  2.00 seconds = 860.00 MB/sec
 Timing buffered disk reads:   16 MB in  3.04 seconds =   5.26 MB/sec  <---
quindi, previo man hdparm:
perin:/# hdparm -c1m16d1u1 /dev/hda
/dev/hda:
 setting 32-bit IO_support flag to 1
 setting multcount to 16
 setting unmaskirq to 1 (on)
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted   <--------------------
 multcount    = 16 (on)
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  0 (off) <--------
Ho passato un bel po' di tempo su google e mi par di capire che, visto che
il disco non e' vecchio e supporta il DMA, FORSE non ho il chipset
supportato nel kernel. Per un problema analogo su un ng dicevano: 
"[...]Da make menuconfig devi guardare sotto:
Device Drivers -->
ATA/ATAPI/MFM/RLL support -->
Devi abilitare il supporto specifico per il tuo chipset oltre,
naturalmente, a:
[*]         Use PCI DMA by default when available..."
Allora:
perin:/usr/src/linux-2.4.25# make menuconfig 
(e riporto sotto la configurazione del kernel ATTUALE)
  <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
  --- Please see Documentation/ide.txt for help/info on IDE drives
  [ ]   Use old disk-only driver on primary interface
  <*>   Include IDE/ATA-2 DISK support
  [ ]     Use multi-mode by default
  [ ]     Auto-Geometry Resizing support
  < >   Include IDE/ATAPI CDROM support
  < >   Include IDE/ATAPI TAPE support
  <*>   Include IDE/ATAPI FLOPPY support
  <*>   SCSI emulation support
  [ ]   IDE Taskfile Access
  --- IDE chipset support/bugfixes
  [ ]   CMD640 chipset bugfix/support
  [*]   PCI IDE chipset support
  [*]     Generic PCI IDE Chipset Support
  [*]     Sharing PCI IDE interrupts support
  [*]     Generic PCI bus-master DMA support
  [ ]     Boot off-board chipsets first support
  [ ]       Force enable legacy 2.0.X HOSTS to use DMA
  [*]       Use PCI DMA by default when available
  [ ]     Enable DMA only for disks
  [ ]       ATA Work(s) In Progress (EXPERIMENTAL)
  < >     Pacific Digital ADMA-100 basic support
  < >     AEC62XX chipset support
  < >     ALI M15x3 chipset support
  < >     AMD and nVidia IDE support
  < >     CMD64{3|6|8|9} chipset support
  < >     Compaq Triflex IDE support
  < >     CY82C693 chipset support
  < >     Cyrix CS5530 MediaGX chipset support
  < >     HPT34X chipset support
  < >     HPT36X/37X chipset support
  < >     Intel PIIXn chipsets support
  < >     NS87415 chipset support
  < >     OPTi 82C621 chipset enhanced support (EXPERIMENTAL)
  < >     PROMISE PDC202{46|62|65|67} support
  < >     PROMISE PDC202{68|69|70|71|75|76|77} support
  < >     RZ1000 chipset bugfix/support
  < >     SCx200 chipset support
  < >     ServerWorks OSB4/CSB5/CSB6 chipsets support           
  < >     Silicon Image chipset support               
  < >     SiS5513 chipset support                      
  < >     SLC90E66 chipset support        
  < >     Tekram TRM290 chipset support       
  < >     VIA82CXXX chipset support    
  [ ]   Other IDE chipset support 
  [ ]   IGNORE word93 Validation BITS 
  < > Support for IDE Raid controllers (EXPERIMENTAL)
 
 
Il punto e': QUAL E', se c'è, il "supporto specifico per il mio chipset"???
Ho passato uno per uno gli help ma sono in difficolta': 
forse Intel 845 non e' supportato dai kernel 2.4.xx?
Se già avevo capito poco, cala veramente la notte quando vedo:
perin:/etc/modutils# hdparm -I /dev/hda
/dev/hda:
ATA device, with non-removable media
[...]
Capabilities:
        LBA, IORDY(can be disabled)
        Queue depth: 1
        Standby timer values: spec'd by Standard, no device specific minimum
        R/W multiple sector transfer: Max = 16  Current = 16
        Advanced power management level: unknown setting (0x0000)
        Recommended acoustic management value: 192, current value: 254
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 udma6
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=120ns  IORDY flow control=120ns
Quindi il dma sembrerebbe attivo (?).
 
Ringrazio chi vorra' darmi un aiut(in)o. ;-)
Ciao, Mauro.

 Quindi il dma sembrerebbe attivo (?).
 hdparm -c1m16d1u1 /dev/hda
/dev/hda:
 setting 32-bit IO_support flag to 1
 setting multcount to 16
 setting unmaskirq to 1 (on)
 setting using_dma to 1 (on)
 multcount    = 16 (on)
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
Stessa mainborad e HD Maxtor da 60 gb .........non mi pare ti possa
lamentare ......
unica differenza il kernel (forse!) 
 uname -a
Linux 10 2.6.7 #1 Thu Dec 30 18:03:31 CET 2004 i686 unknown unknown
GNU/Linux
-- 
www.freewebz.com/iosononiubbo/iosononiubbo.htm#quotare
http://distrowatch.com
 (linux e dintorni)
www.slacky.it/tutorial/slackware_for_dummies/slackware_for_dummies.txt
46=pilota che vince ! 

 GNU/Linux
 
Provo con il kernel 2.6. Ti ringrazio.  
(quel "Timing buffered disk reads: 142 MB in 3.02 seconds = 47.01 MB/sec" è
decisamente confortante) ;-)

 è decisamente confortante) ;-)
Aspetta ...  stavo compilando qualcosina quando ho fatto il test...
ora riprovo...
home/dmec> hdparm -tT /dev/hda
/dev/hda:
 Timing cached reads:   1540 MB in  2.00 seconds = 768.96 MB/sec
 Timing buffered disk reads:  154 MB in  3.02 seconds =  50.92 MB/sec
hda: Maxtor 6Y060P0, ATA DISK drive
hda: max request size: 128KiB
hda: 120103200 sectors (61492 MB) w/7936KiB Cache, CHS=65535/16/63,
UDMA(100)
reiserfs
Senza ottimizzazioni "particolari"  come mamma Slack lo ha fatto   ;-) 
puo essere che il reiserfs  faccia la sua parte ...
