[SOS] Xada n'est plus, vive Toy Lovelace

David Decotigny david.decotigny at free.fr
Lun 29 Nov 18:22:15 CET 2004


Bonjour,

grave wrote:
> J'aimerais bien reussir a casser les dependances entre kslab et  
> kslab_cache... Si quelqu'un a une idee, je suis preneur :-)

Je ne connais pas Ada et je ne suis pas sur de comprendre ton probleme. 
Si tu veux eviter que kslab repose sur un cache special pour allouer les 
struct sos_kslab (si c'est bien ton probleme), une solution est de 
casser completement la dependance. Par exemple en utilisant un 
allocateur de struct sos_kslab "a part" qui alloue tout seul comme un 
grand des regions virtuelles, sans passer par l'API kmem_slab "normale".

C'est surprenant que tu aies un probleme au niveau des dependances 
kslab/kslab_cache. Il me semble que la plus grosse difficulte avec 
l'allocateur de SOS est que kmem_slab repose sur kmem_vmm qui repose sur 
kmem_slab. Le, je concois aisement que ca complique singulierement ET la 
realisation (je temoigne) ET la comprehension (je suppose). A vouloir 
faire qqch d'elegant (auto-suffisant), on vous a presente au final un 
allocateur qui marche mais qui est assez chaud a apprehender.

La solution un peu moins elegante mais qui aurait marche tout autant 
aurait ete de casser cette inter-dependance entre les 2 modules 
kmem_slab/kmem_vmm. Le plus simple pour ca est d'imaginer :
  - kmem_vmm: utiliser un allocateur tres simple de struct kmem_range 
gere en interne et manuellement dans kmem_vmm et qui n'appelle pas l'API 
kmem_slab (=> ca brise la dependance kmem_vmm/kmem_slab).
  - kmem_slab: pas de modif sauf au niveau de l'init, qui devrait etre 
terriblement simplifiee.

Evidemment, quelques petits problemes d'oeuf et de poule a 
l'initialisation auraient demeure dans chacun des 2 modules. Mais dans 
l'ensemble, la comprehension aurait ete plus simple parce que chaque 
module peut etre initialise independamment de l'autre : le probleme de 
l'oeuf et de poule reste local a chaque module et ne vient pas 
interferer avec l'autre module.

Voila comment ça aurait certainement pu (du ?) etre, avec un peu de recul.


Pour Cyril : c'est bien note. Bravo pour le site !

Bonne journee,

-- 
David Decotigny -- http://david.decotigny.free.fr


Plus d'informations sur la liste de diffusion Sos