Wikipedysta:Lesiu79:Brudnopis

Z Wikibooks, biblioteki wolnych podręczników.

Standardowe jądro 2.6.8 dostarczone wraz z Debianem Sarge 3.1 r0a AMD64, nie współpracuje poprawnie z chipsetem ATIIXP, co uniemożliwia włączenie obsługi DMA przez dysk twardy i jest główną przyczyną jego wolnego funkcjonowania. Rozwiązaniem tego problemu jest instalacja jądra 2.6.11.12 lub nowszego.

Moduł odpowiedzialny za obsługę IDE przez chipset naszej płyty głównej powinien być na stałe wkompilowany w jądro.

CONFIG_BLK_DEV_ATIIXP=y

Kolejnym krokiem będzie zainstalowanie programu do dostrajania pracy dysku twardego

aptitude install hdparm

Szczegółowe informacje o dysku twardym możemy uzyskać wydając polecenie

hdparm -I /dev/hda

Poniżej przykład działania polecenia hdparm -I /dev/hda

ATA device, with non-removable media
    Model Number:       IC25N080ATMR04-0                       
    Serial Number:      MRG40HK4KG2R1H
    Firmware Revision:  MO4OAD4A
Standards:
    Used: ATA/ATAPI-6 T13 1410D revision 3a
    Supported: 6 5 4 3
Configuration:
    Logical        max    current
    cylinders    16383    65535
    heads        16    1
    sectors/track    63    63
    --
    CHS current addressable sectors:    4128705
    LBA    user addressable sectors:  156301488
    LBA48  user addressable sectors:  156301488
    device size with M = 1024*1024:       76319 MBytes
    device size with M = 1000*1000:       80026 MBytes (80 GB)
Capabilities:
    LBA, IORDY(can be disabled)
    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 = 0
    Advanced power management level: 128 (0x80)
    Recommended acoustic management value: 128, current value: 254
    DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
         Cycle time: min=120ns recommended=120ns
    PIO: pio0 pio1 pio2 pio3 pio4
         Cycle time: no flow control=240ns  IORDY flow control=120ns
Commands/features:
    Enabled    Supported:
       *    NOP cmd
       *    READ BUFFER cmd
       *    WRITE BUFFER cmd
       *    Host Protected Area feature set
       *    Look-ahead
       *    Write cache
       *    Power Management feature set
        Security Mode feature set
       *    SMART feature set
       *    FLUSH CACHE EXT command
       *    Mandatory FLUSH CACHE command
       *    Device Configuration Overlay feature set
       *    48-bit Address feature set
        Automatic Acoustic Management feature set
        SET MAX security extension
        Address Offset Reserved Area Boot
       *    SET FEATURES subcommand required to spinup after power up
        Power-Up In Standby feature set
       *    Advanced Power Management feature set
       *    General Purpose Logging feature set
       *    SMART self-test
       *    SMART error logging
Security:
    Master password revision code = 65534
        supported
    not    enabled
    not    locked
        frozen
    not    expired: security count
    not    supported: enhanced erase
    66min for SECURITY ERASE UNIT.
HW reset results:
    CBLID- above Vih
    Device num = 0 determined by the jumper
Checksum: correct

Po zainstalowaniu jądra 2.6.11.12 lub nowszego wydajemy polecenie powodujące włączenie na tym urządzeniu obsługi DMA oraz zapamiętaniu ustawień

hdparm -c1 -d1 -k1 /dev/hda

Do testowania szybkości dysku twardego służy polecenie

hdparm -Tt /dev/hda

z włączoną obsługą DMA powinniśmy otrzymać zbliżone prędkości

/dev/hda:
 Timing cached reads:   1980 MB in  2.00 seconds = 989.66 MB/sec
 Timing buffered disk reads:   88 MB in  3.02 seconds =  29.15 MB/sec

dla porównania poniżej zamieściłem prędkości zmierzone podczas pracy na jądrze 2.8.6 z wyłączoną obsługą DMA.

/dev/hda:
 Timing cached reads:   1984 MB in  2.00 seconds = 990.67 MB/sec
 Timing buffered disk reads:    4 MB in  3.83 seconds =   1.04 MB/sec

Włączenie obsługi DMA pozwala przyśpieszyć odczyt danych z dysku twardego o 28 razy !!!