Текущее состояние поддержки SATA в Linux
По актуальности:
http://ata.wiki.kernel.org/index.php/Hardware%2C_driver_status
http://linux-ata.org/driver-status.html#matrix
http://linux.yyz.us/sata/sata-status.html
http://linux.yyz.us/sata/software-status.html
NForce и NCQ
> ata1.00: ATA-8: Hitachi HDP725050GLA360, GM4OA52A, max UDMA/133
> ata1.00: 976771055 sectors, multi 16: LBA48 NCQ (depth 0/32)
> ^^^^^^^^
> Гм. Везде пишут, что этот диск NCQ может.
depth 0/N означает, что диск умеет NCQ (в противном случае эта часть
строки вообще бы не появилась), а вот контроллер (или драйвер) не умеет.
С NCQ на nvidia всё как-то очень мутно, не в последнюю очередь из-за
совершенно непонятной системы обозначений чипсетов (в драйверах только
обозначения типа MCP55, MCP65, таблица с соответствием номеров 4xx/5xx
этим MCP мне не попадалась).
По драйверу sata_nv ситуация следующая:
– В совсем старых чипсетах (NFORCE2, NFORCE3) поддержка
NCQ не реализована аппаратно.
– В CK804 и MCP04 реализована поддержка NCQ в режиме ADMA, однако
с работой этого режима остались проблемы, в результате поддержка
ADMA, добавленная в 2.6.20, была выключена в 2.6.26 (при желании
её можно включить параметром adma_enabled=1).
– В MCP51 и MCP55 для поддержки NCQ используется режим SWNCQ
(в котором, судя по коду драйвера, действительно выполняется
программное переключение между передачей данных для разных команд
в очереди, в отличие от AHCI, где контроллер занимается этим
самостоятельно и выставляет запрос прерывания только после полного
завершения обработки команды). Поддержка этого режима была
добавлена в 2.6.24 (в выключенном по умолчанию состоянии),
и включается автоматически в 2.6.26 (в случае проблем можно отключить
параметром swncq_enabled=0).
– В MCP61 поддержка NCQ не работает (первый патч для SWNCQ включал
поддержку и для этого чипа, но потом её отключили, ссылаясь
на некую аппаратную ошибку).
Более новые версии чипов поддерживаются драйвером ahci – в списке
поддерживаемых контроллеров MCP65, MCP67, MCP73, MCP77, MCP79, MCP7B.
При этом в 2.6.26 добавили обход ошибки в контроллерах MCP65 –
эти контроллеры поддерживают NCQ, но не устанавливают соответствующий
бит в HOST_CAP, в результате с предыдущими версиями драйвера NCQ на таких
контроллерах не работает. Кроме того, у некоторых аппаратных версий
MCP65 (PCI rev 0xa1 и 0xa2) заявляется, но неработоспособен режим MSI;
обход этой ошибки тоже добавили в 2.6.26, в предыдущих версиях
с такими контроллерами, вероятно, придётся использовать опцию pci=nomsi.
Sergey Vlasov в sisyphus@
Ссылок на эту страницу нет