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

KOS CVS Gestion CVS KOS <d2@kos.enix.org>
Sat, 23 Mar 2002 16:39:13 +0100 (CET)


Module :	kos
Modifié par :	d2	23/03/02 16:39:13

Fichiers modifiés :
	modules/kmem   : _kslab_cache_free.c _kslab_cache_grow.c 
	modules/pmm    : _pmm.c _pmm.h _pmm_additional.c 
	                 _pmm_get_at_addr.c _pmm_get_page.c 
	                 _pmm_hw_mapping.c _pmm_init.c _pmm_put_page.c 
	                 pmm.c pmm.h 
	modules/x86/mm : _rmap.c _vmap.c mm.h 

Détails :
Revu le locking pmm : 1 seul gros lock et pas de lock par gpfme. Parce que : avec plusieurs lock pour les multiples listes, c'est la merde qd on veut changer le swap_status (faire un paquet de do {} while pour assurer qu'on change le gpfme de/vers la bonne liste). Et ajouter un lock gpfme, c'est la grosse zone pour le create_kernel_rmap() : en fait je voudrais passer par une fonction qui s'appelle visit_gpfm_list(), et, dans ce cas l'ordre de lock gpfme/list rend le parcours de liste quasi impossible, puisque, partant d'un gpfme sur une liste, c'est difficile d'assurer qu'on va suivre un gpfme qui est tjs sur la meme liste (qd un locke un gpfme, on ne lock pas les gpfme->prev et gpfme->next Et, avec l'ordre de locking inverse, le lock de gpfme n'apporte rien du tout.