[long] Re: Jaký vliv má ACPI na přiřazení IRQ?

Vasek Stodulka vaclav.stodulka na nwt.cz
Pátek Říjen 1 09:09:40 CEST 2004


On Thu, 30 Sep 2004 10:46:44 GMT, Karel Babka <dekls na volny.cz> wrote:

>  Zdravím,
>  objeví se mi následující hláška:
> 
>  capidrv-1: controller dead ??
>  capidrv-1: listen_change_state state=1 event=1 ????
> 
>  v konfeře de.comp.os.unix.linux.isdn jsem našel, že na vině je kolize
>  IRQ. K této kolizi _NEDOJDE_, spustím-li jádro s parametrem acpi=off.
> 
>  Pikantní na tom je to, že po _PRVNIM_ rebootu bez tohoto parametru ke
>  kolizi též _NEDOJDE_. Po každém další rebootu ke kolizi spolehlivě
>  dojde, až do opětovného rebootu s uvedeným parametrem.

	Tomu se neni moc co divit, ACPI rozrazuje IRQ, pokud je o to
pozadano. Druha funkce, o kterou se stara, je sprava napajeni. Drive se pro
tyto sluzby pouzivalo PnP pro PCI (neplest s ISA PnP) a APM. Dnes by se melo
pouzivat spis ACPI.

	Kdyz system bootuje, BIOS rozhodi nejakym zpusobem zarizenim IRQ
(tomu se rika PnP). Je to proto, aby se dal vubec nabootovat system.
Potrebujete zpravidla cist z disku (radic musi mit IRQ), nebo pouzit sitovku
(sitovka musi mit IRQ) atd. Pak nekdo vymyslel APM (zejmena kvuli prechodu
AT -> ATX) a chvilku byl klid. Bavime se o cca prvni polovine 90tych let
minuleho stoleti. Linux obe tyto technologie uspesne spolknul a vsichni byli
stastni az do smrti.

	Pak nekdo prisel na to, ze by bylo mozna nekdy vhodne, aby si
system mohl rozhodit IRQ podle toho, jak potrebuje, a to jeste k tomu
za chodu. A kdyz byli u toho, tak tam jeste pridali moznost kontrolovat
napajeni pro jednotliva zarizeni a viola... mame tu ACPI.

	Dale se operacni systemy zacaly delit na ACPI a neACPI. Microsoft
velmi brzy obohatil sve operacni systemy o podporu ACPI, tusim uz prvi 95ky
fungovaly bez problemu. NeACPI systemy (coz byl v te dobe DOS, Linux,
Win3.11, tusim i OS/2, ...) si zatim fungovaly podle toho, jak jim BIOS
rozhodil IRQ a vsichni byli i nadale spokojeni.

	Podpora ACPI se v linuxu objevuje tusim nekde okolo 2.4.10 (i kdyz
stale skoro nikomu nechybi, driv bylo pouze jako patch), preferovan je
nadale APM. Lidi s notebookama uz ale ACPI patchuji a linuxove ACPI slavi
prvni uspechy. Pise se cca rok 2000.

	Zlom nastava nekde okolo roku 2002, kdy vyrobci hardware uz zacinaji
velmi casto spolehat na to, ze OS podporuje ACPI. Jsou k videni treba desky,
ktere pri startu systemu prideli IRQ jenom sitovce a diskovemu radici,
ostatni periferie maji po startu IRQ 0. Vetsina distribuci Linuxu zacina
defaultne pouzivat ACPI.

	Bohuzel ACPI v Linuxu ma za sebou rozhodne mene, nez ve Windows,
proto casto dochazi k problemum. Na dobrych deskach staci acpi=off, cimz
prechazime zpet k PCI PnP, na spatnych deskach je to na vlastni patch jadra.

>  Zajímalo by mne:
>  1. Proč ke kolizi dochází 

	Protoze je vic zarizeni, nez volnych IRQ.

>  2. Proč k ní dochází pravidelně-asymetricky.

	Na to se budete muset podivat, jak prerozdeluje IRQ kernel a jak
BIOS a hledat spojitost.

-- 
Vašek Stodůlka
tel.: +420 608 200 860


Další informace o konferenci Linux