Takže správně bych měl při psaní každého LKM počítat maximální hloubku stacku? Hmm, to jsem naposled dělal u jednočipů. Čekal bych, že žádný SKUTEČNÝ OS to nemůže požadovat.
Hlášky jako "X pages enough for anybody" už jeden kdysi trousil, a všichni vědí, jak to dopadlo.
Mozna kecam, ale tusim,ze je to tak, ze na stack mate 8MB, pak je jedna stranka volna(zamknuta) a pak nasleduje stack dalsiho vlakna. Teoreticky se muze stat, ze kdyz se zanorite dost hluboko, tak ze prepise stack jinemu vlaknu. Tenhle limit se urcite da nekde zmenit.
Nova podpora vlakenen umoznuje mit lokalni instance promennych pro kazde vlakno(definuji se jako __thread). Pro ty se pouziva gs segmenovy registr.
To je mozna duvod proc mi pada na 2.6 aplkace bezici
pod JRE 1.1.8.
Ivan
Rika se, ze 4kB zasobniku je na proces a 4kB na interrupty. Pokud nebudete deklarovat pole jako automaticke promenne a nebudete pouzivat alloca a nebudete mit rekurzivni funkce, tak na ten limit asi nenarazite.
V kernelu neni virtualni pamet, takze tam nejde alokovat stranky zasobniku podle potreby.