vm_fault: fault on nofault entry

Dan Lukes dan at obluda.cz
Fri Mar 17 18:25:21 CET 2006


 > na svem FreeBSD 6.0-RELEASE-p1 obcas zazivam panic,
 > a rad bych si vyjasnil Panic String.
 > crash/info.0:  Panic String: vm_fault: fault on nofault entry,
 > addr: c9801000
 > Co presne je "page fault" (ani searchovani handbooku ani google
 > neda nic)?

	Page fault je termin z oblasti spravy pameti tykajici se strankovani.

	Nastane v okamziku, kdy se nejaky proces odkaze na takovou linearni 
adresu pameti, ktera neni pritomna ve fyzicke pameti. Obsluha teto 
vyjimky ma za ukol zjistit, kde obsah pameti je (vetsinu swap, kde 
jinde), najit misto ve fyzicke pameti kam stranku umisti (vetsinou za 
cenu toho, z ejinou odsune do swapu) a umistit ji tam. Po ukonceni 
obsluhy procesor zopakuje instrukci, ktera fault vyvolala.

 > Co presne je "vm_fault: fault on nofault entry"?

	Pravdepodobne je to hlaska prave z obsluhy te vyjimky - kdyz ta 
zjistila, ze pozadovana chybejici stranka je podle jejich zaznamu 
"nestrankovatelna" - tedy se z pameti nikdy neodstranujici, ktera tedy 
nemuze chybet - a kterou tedy nelze odnikud vytahnout a vratit. Samotny 
fakt vzniku teto udalosti je jasnym dukazem vazne chyby v oblasti spravy 
pameti, kterou navic nelze nijak napravit - system prisel na to, ze v 
pameti ma neopravitelny bordel. Nema celkem jinou moznost jak 
zareagovat, nez to zabalit ...

	Obvykle je vyskyt teto chyby znamkou vady pameti nebo poruchy v 
komunikaci s ni (vada chypu, ktery s ni komunikuje, pretaktovani, 
pripadne vada L2 cache, ...). Dalsi moznost je, ze to je vada nejakeho 
zarizeni resp. jeho ovladace zejmena v souvislosti s pouzitim DMA.

	V neposledni rade by mohlo jit i o vadu samotneho strankovaciho kodu OS 
(na verzi X.0 bych tut omoznost zcela neignoroval, ackoliv je spise malo 
pravdepodobna).

 > options 	ADAPTIVE_GIANT		# Giant mutex is adaptive.

	No, a kdyz je pan provokater a musi vyzkouset kazdou novinku, ktera se 
objevi, tak se taky nemuze divit ... ;-)

 > atapci0: using PIO transfers above 137GB as workaround for 48bit DMA
 > access bug, expect reduced performance

	A toto je pro zmenu dukaz, ze pouzity ATA chip neni prilis kvalitni. 
Nutne se pak nabizi otazka, zda to je jeho jedina vada.

						Dan



P.S. A mimochodem - na totaz "page fault" na Google je hned prvni odkaz 
relativne dobrym zakladnim vysvetlenim toho, co to je. Takze nevim, jak 
je mozne, ze tobe Google nic rozumneho nevratil ...

-- 
Dan Lukes                                   SISAL MFF UK
AKA: dan at obluda.cz, dan at freebsd.cz,dan at kolej.mff.cuni.cz



More information about the Users-l mailing list