Programatorsky orisek?

Jan Marek jmarek na jcu.cz
Pondělí Listopad 19 10:32:49 CET 2001


Zdravim,

On Mon, Nov 05, 2001 at 12:38:29AM +0100, Pavel Machek wrote:
> Ahoj!
> 
> > > > v casti, kdy se snazi obsadit IRQ. Asi jsem nepsal, ze zde je IRQ
> > > > sdilene s VGA kartou, takze asi narazi tam... Sice uz jsem se
> > > > dival i do funkce request_irq(), ale tam uz se poustet neminim...
> > > 
> > > 	Napad - umi ta VGA karta vubec sdileni IRQ? Je to pomerne 'nova'
> > > featura, kterou starsi karty dost tezko nekdy rozdychavaji... (pokud
> > > jste na stejnem zeleze mel MS Windows mely tyto komponenty skutecne take
> > > stejne IRQ?)
> > 
> > Umi, protoze 2.4.11-xfs s PCMCIA balikem z pcmcia.sourceforge.net
> > na tom funguje naprosto bez problemu a vanilla kernel 2.4.10 mi
> > taky chodil s podporou jadernych driveru (yenta_socket). Cili
> > zrejme se neco nekde zmenilo ;-)))
> 
> Projit diffy mezi 2.4.10 a tou versi kde to nechodi, najit ten ktery
> to dela, najit -pre patch ktery to dela, a poslat report na l-k a
> linusovi. Yenta delal tusim (aspon castecne) linus osobne.

No, abych tedy podal zpravu o vyreseni:

Nakonec nebyl problem v yenta_socket-u, ale uplne jinde (nechtel
jsem se stourat prilis ve zdrojacich jadra, ale v lkml na moje
dopisy moc nereflektovali, dokud jsem nedosel tak hluboko, jak to
jen slo) problem byl v tom, ze mi v notebooku vznikl interrupt
storm (nekonecny interrupt, ktery nemel jeste doinstalovanou
obsluhu, nebot tato obsluha se zrovinka instalovala). Diky tomu
se kernelu nepodarilo odemknout zamek, ktery byl kolem kriticke
sekce.

Dostal jsem patch, ktery tento storm dokazal detekovat a zabranit
mu. Na muj navrh, aby byl implementovan do jadra, se mi dostalo
odpovedi, ze do 2.4 ne, ale ze se s necim takovym pocita ve 2.5
vetvi. Nakonec jsem dostal jeste radu, abych zkusil vypnout ACPI.
Stacilo prekompilovat kernel bez ACPI a problem byl vyresen???

Jinak: diff-y mezi 2.4.10 a 2.4.14 jsem si ruzne delal, ale zmeny
v yenta.c nebyly zadne. Co se menilo: prace s irq a take prace se
zamky...

Jeste me zaujala jedna zvlastni vec: kdyz jsem se hrabal v jadre,
tak jsem zjistil, ze spinlocky jsou definovany velmi zajimave:
neco jako {} while (0); Pak jsem ale zjistil, ze se redefinuji v
sekci (pro me, samozrejme) asm-i386 primo na nejaky assembler...
Je to bezna vec? Ja myslel, ze by ta definice mohla byt bez
redefinice...

> 
> 								Pavel

Zdravi
Honza Marek
-- 
Ing. Jan Marek
University of South Bohemia
Academic Computer Centre
Phone: +420-38-7772080


Další informace o konferenci Linux