[d-kernel] 2.6 IDE LBA48 problem
Mikhail Yakshin
greycat на altlinux.ru
Вт Янв 4 21:33:23 MSK 2005
Приветствую!
Такая ситуация. Есть машина с материнкой ECS K7AMA - это на ALi-шном
чипсете AMD. Есть на ней такой вот IDE контроллер:
ALi Corporation M5229 IDE [IDE interface storage controller]
10b9:5229:10b9:5229 drivers: not found class:001:01:fa
hwid: 7CF90742C2091B3D
Проблема в том, что это контроллер в упор физически не поддерживает
адресацию LBA48 при DMA и поэтому любой жесткий диск >134 гиг видится
только на 134 гига. На любом ядре 2.4 это выглядит так в dmesg:
hdb: attached ide-disk driver.
hdb: host protected area => 1
hdb: cannot use LBA48 - capacity reset from 312581808 to 268435456
hdb: 268435456 sectors (137439 MB) w/8192KiB Cache, CHS=19457/255/63,
UDMA(100)
Ну и замечательно, используем 134 гига.
На 2.6 ядре все по другому. Там умный драйвер IDE от ALi считает, что он
умнее всех и что сейчас он все сделает как надо. Делает он просто -
смотрит на версию чипсета, определяет по нему поддержку контроллеров
UDMA при LBA48 - если не поддерживается - то говорит замечательную фразу
о том, что для доступа к высоким секторам будет использоваться PIO.
Проблема в том, что после этого все глохнет на пару минут, пока ядро не
слетает по таймаутам в UDMA и наконец вырубает этот DMA вообще и
целиком. После этого жесткий диск работает полностью, вроде бы даже на
160 гиг, как положено, но только в PIO, UDMA не включается совсем никак.
Скорость работы с диском посему ~1.5-2 мег в секунд (vs 40-50 при UDMA)
при 100% CPU load.
Процесс загрузки при таком пробинге и ожидании таймаутов растягивается
на 6-7 минут, первый раз таймаутов ждем на чтении partition table,
второй - на загрузке модулей файловых систем.
Вопрос - что в этом случае можно сделать? Я посмотрел в драйвер
alim15x3.c - там все грустно, глухо и тупо. Даже нет ни одной опции,
который бы можно было это оверрайдить. Меня бы в принципе устроило, если
бы 2.6 ядра вели себя как 2.4-ые. Приделывать опцию какую-нибудь или
расширять патчи по версиям?.. Или может не стоит так сильно мучаться и
уже придумано "до нас" что-то более умное?..
--
WBR, Mikhail Yakshin AKA GreyCat
ALT Linux [http://www.altlinux.ru] [xmpp:greycat at altlinux.org]
Подробная информация о списке рассылки devel-kernel