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

KOS CVS kos-dev <kos-dev@enix.org>
Sat, 8 Jun 2002 17:10:24 +0200 (CEST)


Module :	kos
Modifié par :	d2	08/06/02 17:10:24

Fichiers modifiés :
	.              : TODO 
	loader/boot    : loader.c 
	loader/mm      : mm.c vmm.c 
	modules        : config.h 
	modules/babel/tower: _tower_shadow_resource.c 
	modules/debug  : debug.c debug.h 
	modules/kmem   : Makefile _kmem_init.c _kslab.h 
	                 _kslab_cache_alloc.c _kslab_cache_create.c 
	                 _kslab_cache_destroy.c _kslab_cache_free.c 
	                 _kslab_cache_grow.c _kslab_init.c 
	                 _kvmem_alloc.c kmem.h 
	modules/kos    : spinlock.h wolfgang.c 
	modules/libhash: _libhash.c 
	modules/liblist: liblist.h 
	modules/pmm    : _pmm.h _pmm_put_page.c pmm.h 
	modules/task   : _task_init.c 
	modules/tty    : _tty.c 
	modules/vmm    : _vmm_anon.c _vmm_vr.c 
	modules/x86/mm : _rmap.c mm.c 

Détails :
Correction bug recursivite rmap temporaire (en attendant utilisation semaphors - cf TODO).
Methode : on ajoute un parametre supp a la creation de chaque cache : le threshold. Qd on tombe en dessous du threshold, a la fin du kslab_alloc, on alloue un slab en plus. Il faut faire bien attention a ne pas allouer un slab d'avance si c'est deja en cours (d'ou le champ growth_in_progress).
Y'a une race condition (cf TODO) en attendant les semaphores.

Debug: pas d'init de serial qd on est sous bochs.

Resultat : avec 384M, plus de pb de spinlock ni de triple fault. Par contre, sur le Cyrix, fat ne trouve pas le /bin/console alors qu'il est bien la (partition FAT) : a noter que c'est sur IDE1 (hdc), ca vient peut-etre de la (part detecte bien la partition pourtant). Sur le K7, c'est hda qui est pas correctement repere. Sous bochs ca continue de marcher.

Details : virage de la bidouille pmm pour faire apparaitre le bug, virage de la bidouille loader pour limiter artificielement la taille RAM.

J'en ai un peu ma claque pour aujourd'hui.