[OSy] SET_STATIC_STACK
Ondrej Mocny
ondrej.mocny at gmail.com
Mon Dec 14 16:25:43 CET 2009
Super, diky za patch, uz se mi to vyjasnilo :)
Ondrej Mocny
Martin Decky napsal(a):
> Hezky den,
>
> mate pravdu, pri blizsim zkoumani je skutecne videt, ze ten kod v
> Kalistu je ponekud zmateny (a typicky funguje jen diky tomu, ze za
> koncem statickeho zasobniku jednoho procesoru je zasobnik dalsiho
> procesoru a tyto dalsi procesory prakticky nevyrizuji zadne vyjimky).
>
> V priloze posilam opravu pro Kalisto. Tato oprava obsahuje nasledujici:
>
> 1) Odstranil jsem matouci poznamku o tom, ze se TLB Refill handler
> vyhyba General Exception handleru. To je samozrejme pravda, ale
> zduvodneni je jine: TLB Refill pouziva staticky zasobnik od vrcholu
> (zasobnik roste smerem k nizsim adresam), zatimco General Exception
> spravne pouziva staticky zasobnik ode dna (od nejnizsi adresy).
>
> 2) TLB Refill handler uz neuklada $badvaddr na staticky zasobnik. Je to
> totiz zbytecne, TLB Refill handler neni reentrantni, takze si
> $badvaddr nemusi nikam ukladat.
>
> 3) General Exception handler musi pouzivat staticky zasobnik pro
> docasne ukladani nekterych CP0 registru ode dna, ne od vrcholu.
> Proto je tam nyni displacement KERNEL_STACK_SIZE.
>
> Diky za pozorne cteni kodu! Ocenuji, ze jste se skutecne snazil
> pochopit, co kod dela a co by mel delat. Zaroven to ukazuje, ze pres
> veskerou snahu lze v takovych zalezitostech trivialne udelat chybu.
>
>
> M.D.
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> OSy mailing list
> OSy at dsrg.mff.cuni.cz
> https://dsrg.mff.cuni.cz/mailman/listinfo/osy
More information about the NSWI004
mailing list