[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