[Kos-dev] kvalloc, synchronisation des PDE, port-e8-hack

Thomas Petazzoni kos-dev@enix.org
Mon, 07 May 2001 11:24:57 +0200


> Vu, le kvalloc. A part un detail de syntaxe dans le kvalloc et le
> ASSERT_FATAL() un peu genant dans allocate_new_unused_range(), ca a
> l'air fort bien. 

pourrais-tu preciser les petites erreurs que je puisse corriger et
comprendre mes fautes ?

> Sinon, j'aurais conserve le
> find_range_in_free_ranges_list() qui permet de ne pas se limiter a la
> strategie "first fit".

cette fonction serait appellee dans kvalloc pour trouver un range
suffisamment grand et libre. effectivement le first fit me plait pas
trop, parce que si on veut allouer une page, qu'on a un gros range puis
un petit de une page dans la liste, faut mieux utiliser le petit de une
page que splitter le gros. c'est moins couteux en temps et ca evite la
fragmentation. mais comment faire ca ? faudrait scanner plusieurs fois
la liste ? je connais pas bien les algo type first fit et autres ? un
petit topo ?

> Pour ce qui est de tes interrogations sur la strategie a adopter pour
> le bitmap primaire, j'ai egalement une preference pour les 3eme
> (bitmap associe a la page physique) et 4eme (structure annexe geree en
> VM) approches. La 4eme a l'avantage d'etre plus "propre", mais plus
> chaude a realiser aussi.

perso la 4eme est la plus belle, mais j'ai peur au niveau performance.
une fois qu'une page est dans une des listes free de kmem, on a pas
interet a la virer tout de suite, a moins qu'on soit vraiment oblige.

> Pour le port e7/e8, ca peut servir, oui. Va falloir qd meme reflechir
> a un moyen de recuperer les infos de relocation off-line (maintenant
> que l'adresse de debut est connuee et standard [512M]).

ouais j'ai commence a reflechir a ca, mais c'est quand meme chaud.

thomas
-- 
PETAZZONI Thomas
thomas.petazzoni@meridon.com
ICQ : 34937744
Projet KOS : http://kos.enix.org