Chyba v jadre?

Martin `MJ' Mares mj na ucw.cz
Neděle Únor 20 18:56:04 CET 2000


Zdravim,

> Mam linux redhat 5.1 verzi jadra uz si presne napamatuji asi 2.0.35 ale nevim to presne. 
> Jak jsem pochopil z manualovych stranek funkce  
> mlockall( MCL_FUTURE ) by mela uzamknout vsechny 
> stanky co budou v budoucnu v procesu alokovany. 
> Dale by jadro melo regulovat pocet uzamcenych stanek v pameti, aby to prilis nezatezovalo system. Me se vsak volanim mlockall( MCL_FUTURE ) 
> a nasledne cyklickym volanim malloc(4096) podarilo uzamknout veskerou pamět. Dalsí alokace 
> skoncila ukoncením procesu a hláskou Bus error. 
> Je to chyba v jádre? A pokud ano, ve ktere verzi jádra je uz odstranena?  

   Ja si myslim, ze Vase volani funkce mlockall() vubec neuspelo a vratilo
chybovy kod, protoze sama pamet zabrana Vasim testovacim programem pred
jakymkoliv dalsim alokovanim byla nad limitem uzamcene pameti. Alokovani
pameti pres malloc() pak postupne vybralo veskerou volnou pamet i volny
swap, coz pak muze skoncit (podle kontextu, kdy pamet dojde) budto tim,
ze malloc() vrati NULL (pokud opravdu pri mallocu) nebo signalem SIGBUS
(pokud to nastane pri alokaci pameti zpusobene page-faultem).

				Have a nice fortnight
-- 
Martin `MJ' Mares   <mj na ucw.cz>   http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
"Maintenance-free:  When it breaks, it can't be fixed..."


Další informace o konferenci Linux