ALT Linux kernel packages development
 help / color / mirror / Atom feed
From: Mikhail Yakshin <greycat@altlinux.ru>
To: ALT Linux kernel packages development <devel-kernel@altlinux.ru>
Subject: [d-kernel] 2.6 IDE LBA48 problem
Date: Tue, 04 Jan 2005 21:33:23 +0300
Message-ID: <41DAE173.5060208@altlinux.ru> (raw)

Приветствую!

Такая ситуация. Есть машина с материнкой 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]


             reply	other threads:[~2005-01-04 18:33 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-04 18:33 Mikhail Yakshin [this message]
2005-01-04 18:44 ` [d-kernel] " Konstantin A. Lepikhov
2005-01-04 19:19 ` [d-kernel] " Sergey Vlasov
2005-01-05  0:11   ` Mikhail Yakshin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=41DAE173.5060208@altlinux.ru \
    --to=greycat@altlinux.ru \
    --cc=devel-kernel@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux kernel packages development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-kernel/0 devel-kernel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-kernel devel-kernel/ http://lore.altlinux.org/devel-kernel \
		devel-kernel@altlinux.org devel-kernel@altlinux.ru devel-kernel@altlinux.com
	public-inbox-index devel-kernel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git