Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как включить DMA?  (Прочитано 3354 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SALVE

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Как включить DMA?
« : 09 Декабря 2009, 11:01:17 »
Озаботился проблемой низкой скорости копирования файлов (внутри харда - ~5mb/s, по USB ~9mb/s), вывод hdparm такой:
ATA device, with non-removable media
Model Number:       WDC WD6401AALS-00L3B2                   
Serial Number:      WD-WMASY5111190
Firmware Revision:  01.03B01
Transport:          Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5
Standards:
Supported: 8 7 6 5
Likely used: 8
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors:   16514064
LBA    user addressable sectors:  268435455
LBA48  user addressable sectors: 1250263728
device size with M = 1024*1024:      610480 MBytes
device size with M = 1000*1000:      640135 MBytes (640 GB)
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
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 *udma6
     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
   * NOP cmd
   * DOWNLOAD_MICROCODE
    Power-Up In Standby feature set
   * SET_FEATURES required to spinup after power up
    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
   * General Purpose Logging feature set
   * 64-bit World wide name
   * Segmented DOWNLOAD_MICROCODE
   * SATA-I signaling speed (1.5Gb/s)
   * SATA-II signaling speed (3.0Gb/s)
   * Native Command Queueing (NCQ)
   * Host-initiated interface power management
   * Phy event counters
    DMA Setup Auto-Activate optimization
   * Software settings preservation
   * 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)
    unknown 206[12] (vendor specific)
    unknown 206[13] (vendor specific)
Security:
Master password revision code = 65534
supported
not enabled
not locked
frozen
not expired: security count
supported: enhanced erase
114min for SECURITY ERASE UNIT. 114min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 50014ee0fb2678
NAA : 5
IEEE OUI : 14ee
Unique ID : 0fb2678
Checksum: correct

Насколько я понимаю, отсутствие звёздочки "Enabled" напротив "DMA Setup Auto-Activate optimization" говорит о том, что эта функция не включена.
Дальше:
sudo hdparm -d1 -X /dev/sda

/dev/sda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Inappropriate ioctl for device
 setting xfermode to 0 (default PIO mode)
 HDIO_DRIVE_CMD(setxfermode) failed: Input/output error
 HDIO_GET_DMA failed: Inappropriate ioctl for device

В биосе стоял режим Auto, поменял на udma1 - не помогло.

Здесь в нескольких ветках нашёл обсуждение проблемы. Попробовал  в /etc/init.d/bootmisc.sh добавить
modprobe ide-generic
modprobe ide-generic dma=1
hdparm -d1 /dev/sda
Не помогло.

Попроблвал в /etc/hdparm.conf раскомментить строки так:

/dev/cdroms/cdrom0 {
dma = on    
# interrupt_unmask = on
# io32_support = 0
}

/dev/hda {
# mult_sect_io = 16
# write_cache = off
dma = on
}
Не помогло. Кстати, интересно, почему они по умолчанию закомментенные...

Но здесь на форуме обсуждался, как я понял, только случай с IDE дисками, которые система видит как ATA и не пускает DMA из-за каких-то нестыковок с libata. А если диск не IDE, а натюрлих SАТА, то как?

Проверил на другом ноуте со свежеустановленной ubuntu 9.10 (у самого-то 9.04) - та же песня: звёздочка не стоит, Inappropriate ioctl for device. Может, зря гоню волну, а оно так и должно быть?  ??? Тогда почему скорость низкая?

Оффлайн anonimus

  • Активист
  • *
  • Сообщений: 592
    • Просмотр профиля
Re: Как включить DMA?
« Ответ #1 : 09 Декабря 2009, 11:02:57 »
у Вас уже включено udma6

Оффлайн SALVE

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Как включить DMA?
« Ответ #2 : 10 Декабря 2009, 01:35:25 »
Хм... Странно: в биосе выставлено udma1, а hdparm показывает (я так понял, вы имеете в виду отмеченное звёздочкой в блоке Capabilities) udma6.
И значит копирование, скажем, крупного файла (больше гига) на журналируемой ext3 со скоростью 5мб/с - это норма??  :-[ Мне представляется, показатель поближе к 30мб/с тут должен быть...

 

Страница сгенерирована за 0.019 секунд. Запросов: 20.