[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.