From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <41DAE173.5060208@altlinux.ru> Date: Tue, 04 Jan 2005 21:33:23 +0300 From: Mikhail Yakshin User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.7.2) Gecko/20040808 X-Accept-Language: ru, en-us, en MIME-Version: 1.0 To: ALT Linux kernel packages development Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit Subject: [d-kernel] 2.6 IDE LBA48 problem X-BeenThere: devel-kernel@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux kernel packages development List-Id: ALT Linux kernel packages development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Jan 2005 18:33:25 -0000 Archived-At: List-Archive: List-Post: Приветствую! Такая ситуация. Есть машина с материнкой 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@altlinux.org]