[Kos-cvs] [kos] Modification CVS par d2

KOS CVS kos-dev <kos-dev@enix.org>
Thu, 6 Jun 2002 23:22:52 +0200 (CEST)


Module :	kos
Modifié par :	d2	06/06/02 23:22:52

Fichiers modifiés :
	loader/mm      : mm.c 
	modules/debug  : debug.h 
	modules/x86/mm : _pgflt.c 
	modules/x86/task: _dbflt.c 

Détails :
Bug spinlock machines a grosse memoire : c'est en fait un bug memoire qui n'a rien a voir avec les spinlock. En dessous de 164M, ca a l'air de marcher. 165M et plus -> triple fault. Vers 256M -> on retrouve un pb de spinlock. Bref, qqch de pas catholique.
modifs :
loader/mm/mm.c => limitation factice de la memoire totale detectee (mise a 164M pour que ca marche a peu pres) => bouger le MAX_SZ pour que ca plante sur les machines a plein de RAM. #warning pour pas oublier de virer cette biduille quand ca sera Ok.
macro HALT : eviter d'appeler les __dbg_backtrace (appele par __dbg_halt_handler) et cie dans pgflt et dbflt => macro DONT_CALL_UNSAFE_HALT_HANDLER.
pgflt : detection correcte de nested #PF. IMPORTANT : en cas de nested #PF, on ne voit rien a l'ecran (systeme GELE sans message) => c'est normal on ne fait que un bochs_printk() et SURTOUT PAS de printk() (sinon triple fault a cause que la mem fait des trucs bizarres avec tty et que ca plante...). Les reboot qu'on obtient, je pense qu'ils viennent des printk() qui sont dans le dbflt.c (caches derriere les SEVERE_PRINT).