[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