opet syscally
Tomas Pluskal
plusik at pohoda.cz
Fri May 7 11:04:07 CEST 2004
Zni to logicky. Jinymi slovy to znamena, ze kazdy modul, ktery napichne
nejaky syscall, muze s nenulovou pravdepodobnosti zpusobit pad systemu pri
unloadu, pokud ten syscall nekdo v okamziku unloadu pouziva. Zajimave je,
ze v examplech se s tim nejak nepocita, ani na to nikdo neupozornuje..
T.P.
On Fri, 7 May 2004, Dan Lukes wrote:
> Muj tip je, ze behem provadeni nekterych syscallu muze dojit ke
> kontext-switchi (typicky wait, kdyz podminka neni splnena, zpuzobi, z
> eproces ceka a mezitim probihaji procesy jine). Pokud v teto chvili
> dojde k odloadovani modulu, tak sice dojde k "naprave" vsech
> syscall-pointeru, ale nedojde k uprave zasobniku podobne zastavenych
> procesu. Presto ale dojde k uvolneni pameti s vasim kodem.
>
> Takze - proces, ktery cekal na "wait" skonci - a protoze do kodu "wait"
> se nedostal primo, ale pres vas kod, tak se pokusi, pri navratu, skocit
> na prislusne pametove misto - to ale uz neexistuje (prinejemensim ne se
> smysluplnym obsahem). A v tomto okamziku dojde k padu.
>
> Pokud je tato teorie spravna, pak si budete muset delat pro kazdy
> syscal "carky" za vstup (a mazat je pri vystupu), pricemz odstraneni
> "presnerovani" pro danny syscall neni mozne, pokud je pocet carek
> nenulovy (a celkovy unload modulu neni mozny, pokud je jedinny syscall
> presmerovany).
>
> Podotykam, ze je to ciste teoreticky vykonstruovana teorie - takze si
> to musite skutecne vyzkouset.
>
> Dan
>
More information about the Users-l
mailing list