DMA não ativado em hardware antigo

0

Enquanto trabalhava em um hardware antigo onde o Ubuntu é instalado, notei que, usando o top, uma quantidade enorme de tempo de CPU foi gasto esperando por operações de E / S (a transferência de dados da rede estava em andamento). Por isso, verifiquei o estado do DMA usando este comando:

sudo hdparm -d /dev/sdb2

/dev/sdb2:
 HDIO_GET_DMA failed: Inappropriate ioctl for device

Isso significa que o dispositivo não está usando o DMA? Eu também tentei recuperar informações sobre o hardware e consegui isto:

sudo hdparm -I /dev/sdb2

/dev/sdb2:

ATA device, with non-removable media
        Model Number:       WDC WD1600JB-00GVA0                     
        Serial Number:      WD-WCAL91665091
        Firmware Revision:  08.02D08
Standards:
        Supported: 6 5 4 
        Likely used: 8
Configuration:
        Logical         max     current
        cylinders       4092    65535
        heads           16      1
        sectors/track   63      63
        --
        CHS current addressable sectors:    4128705
        LBA    user addressable sectors:   66055248
        LBA48  user addressable sectors:  312581808
        Logical/Physical Sector size:           512 bytes
        device size with M = 1024*1024:      152627 MBytes
        device size with M = 1000*1000:      160041 MBytes (160 GB)
        cache/buffer size  = 8192 KBytes (type=DualPortCache)
Capabilities:
        LBA, IORDY(can be disabled)
        Standby timer values: spec'd by Standard, with device specific minimum
        R/W multiple sector transfer: Max = 16  Current = 16
        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=120ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
           *    SMART feature set
                Security Mode feature set
           *    Power Management feature set
           *    Write cache
           *    Look-ahead
           *    Host Protected Area feature set
           *    WRITE_BUFFER command
           *    READ_BUFFER command
           *    DOWNLOAD_MICROCODE
                SET_MAX security extension
                Automatic Acoustic Management feature set
           *    48-bit Address feature set
           *    Device Configuration Overlay feature set
           *    Mandatory FLUSH_CACHE
           *    FLUSH_CACHE_EXT
           *    SMART error logging
           *    SMART self-test
           *    SMART Command Transport (SCT) feature set
           *    SCT Long Sector Access (AC1)
           *    SCT LBA Segment Access (AC2)
           *    SCT Error Recovery Control (AC3)
           *    SCT Features Control (AC4)
           *    SCT Data Tables (AC5)
Security: 
                supported
        not     enabled
        not     locked
        not     frozen
        not     expired: security count
        not     supported: enhanced erase
HW reset results:
        CBLID- above Vih
        Device num = 1 determined by the jumper
Checksum: correct

Entendo que o DMA deve ser suportado. Por que estou obtendo esse erro e é incomum que o top mostre valores superiores a 90% para operações "iowait" quando duas transferências de rede estão em execução?

    
por Luca Carlon 01.10.2012 / 01:11

1 resposta

0

Eu recebo a mesma mensagem que você faz em dois computadores muito diferentes em 10.04 e 12.04, respectivamente. Adicionar -d -d1 diz que está ligando, mas suspeito que as mensagens nos dizem que não é realmente eficaz.

Estou obtendo bom acesso ao disco, no entanto.

Uma vez tive problemas com a resposta lenta ao disco e, se bem me lembro, foi porque o DMA não estava funcionando. A causa era um cabo de fita ruim que havia sido manipulado várias vezes, então ele tinha um cabo de controle quebrado usado para o DMA. A substituição do cabo de fita aumentou muito o desempenho.

No meu caso, vi uma mensagem de aviso no momento da inicialização, que foi embora assim que eu substituí o cabo. Eu sugiro que você olhe para / var / log / syslog em busca de mensagens suspeitas sobre o seu adaptador de disco ou drive.

    
por John S Gruber 01.10.2012 / 03:17