[OSy] Problem se stackem v KUSEG

Michal Foltýn mike at section.cz
Tue Jan 9 13:29:13 CET 2007


Zdravim,

mam dve vlakna, jedno kerneli a jedno uzivatelske.
Stack u toho kerneliho (idle) vlakna vytvarim tak jak to mela predchozi 
skupina, tzn. pomoci mallocu v KSEG0.
Stack u toho "uzivatelskeho" (tam kde je nakopirovan kod procesu) se 
nyni snazim premistit na nejakou konkretni adresu v KUSEGu pomoci 
vmalloc. Pamet pomoci vmallocu se v poradku naalokuje. To moje 
uzivatelske vlakno sdili adresovy prostor s tim kernelim (thread_create() ).

Nicmene po spusteni mi to zahlasi "Access to address 0x0 not allowed". 
Po trpelivem "debugovani" jsem zjistil, ze to vyhuci v context switchi 
(hned pri prvnim prepnuti na to uzivatelske vlakno). To same to hlasi, 
pokud zakomentuju registry pro prepnuti do user modu a tim zustanu v 
kernelu.

Rikal jsem si jestli chyba neni treba v nastaveni entryhi, entrylo, ale 
bud tady chyba neni, a nebo to nastavuju nejak spatne.

Pokud vytvarim stack pomoci vmalloc v KSEG0 tak mi to chodi (sice ne v 
user space, ale aspon se to spusti).

Pouzivame kernel Sirius(kohlto).

Setkali jste se s tim nekdo?
Diky

Michal F.





More information about the NSWI004 mailing list