LINUX.ORG.RU
ФорумAdmin

Multicount for UDMA.


0

1

Всех приветствую! Коллеги, на одном из серверов после hotplug замены диска SATA, multicount для диска отключился, то есть было:
ata3.00: 1953525168 sectors, multi 16: LBA48 NCQ (depth 31/32)
после замены стало:
ata3.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 31/32)
hdparm не помогает:

# hdparm -m16 /dev/sda

/dev/sda:
 setting multcount to 16
 HDIO_SET_MULTCOUNT failed: Inappropriate ioctl for device
 HDIO_GET_MULTCOUNT failed: Inappropriate ioctl for device
#
В интернетах, некоторые пишут, что этот multicount только для PIO режима, в DMA не используется. Но зачем же тогда ядро этот параметр пишет при загрузке? Можно ли как-то этот параметр всё же увеличить до 16?


Да, multicount только для режима PIO, и особо не поможет. Если DMA отключится, и с диском будет работа в PIO режиме, то тормоза будут независимо от значения multicount.

Но зачем же тогда ядро этот параметр пишет при загрузке?

Если я правильно понимаю, то ядро просто пишет различные параметры диска, причём пишет текущие значения, которые диск определил сам после включения питания, или которые диску установил BIOS.

Можно ли как-то этот параметр всё же увеличить до 16?

Может и путаю, но, вроде как этот параметр после включения питания диска устанавливается равным нулю. Раз ядро не позволяет выполнить соотв. ioctl, то остаётся только вывести диск из системы (un-register) и выполнить ATA-команду ″SET MULTIPLE MODE". Не знаю, чем её можно выполнить, возможно, что нужно будет писать самому программу, которая запишет соответсвующий код в порты ввода/вывода контроллера (диска).

mky ★★★★★
()
Ответ на: комментарий от mky

То есть, если диск находится в режиме udma-6, то в алгоритмах чтения/записи диска ничего не меняется не зависимо от того, какое значение имеет параметр multcount? Или все же, влияние этого параметра в режиме udma хоть не большое, но всё же есть?

Viper
() автор топика
Ответ на: комментарий от Viper

Или все же, влияние этого параметра в режиме udma хоть не большое, но всё же есть?

Согласно стандарту ATA, команда ″SET MULTIPLE MODE″ влияет только на команды ″READ MULTIPLE″ и ″WRITE MULTIPLE″, которые работают в PIO режиме. В dma/udma режимах чтение/запись идёт командами ″READ DMA″/″WRITE DMA″. Никакого влияния multicount на udma оказывать не должен, а если оказывает, то это баг в прошивке винчестера.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.