[sisyphus] ahci, sata_nv, ncq

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Пн Окт 20 14:06:24 MSD 2008


On Mon, Oct 20, 2008 at 12:30:14AM +0300, Michael Shigorin wrote:
> On Mon, Oct 20, 2008 at 12:08:30AM +0300, Led wrote:
> > > > А что, ahci лучше, чем нативные драйвера? Я что-то пропустил?
> > > Оно может уметь NCQ, хотя сейчас домашний характер нагрузок
> > > сильно изменился tmpfs и увеличением объёма памяти...
> > У меня на 2.6.22 sata_nv с 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.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20081020/c52cdc49/attachment-0001.bin>


Подробная информация о списке рассылки Sisyphus