[OSy] switch_cpu_context
LubomÃr Bulej
bulej at nenya.ms.mff.cuni.cz
Wed Dec 7 20:27:32 CET 2005
Dobry den,
>
> Narazili jsme na problem v souboru "sys.s" ve funkci "switch_cpu_context".
> Myslime si, ze tato funkce by mimo jine mela ulozit obsah registru na zasobnik aktualniho vlakna a ze zasobniku vlakna, na ktere se prepina kontext, by naopak mela nacist hodnoty do registru. To by mela provadet i s registrem EntryHi.
>
> Pri vytvoreni vlakna jsme na zasobnik na misto OFFSET_HI ulozili ASID (obdobne jako OFFSET_STATUS, ktery byl jiz v puvodnim Kalistu) a cekali jsme, ze bude pri zmene kontextu nacten do registru. To se vsak nestalo. Naopak, kdyz ASID ulozime do registru EntryHi jeste pred zmenou kontextu, tak se jeho hodnota po prepnuti kontextu vubec nezmeni.
>
> V cem by mohl byt problem??
>
Pri prepinani kontextu mezi dvema vlakny je nutne zajistit, aby doslo i k
prepnuti kontextu pameti (ten je dan aktualni hodnotou ASID v EntryHi). Tj.
neni to tak uplne problem, je to neco co musite dodelat pro spravnou funkci
virtualni pameti.
Lubomir Bulej
More information about the NSWI004
mailing list