[SOS] La pile des kernel threads

geoffroy weisenhorn geoffroy.weisenhorn at gmail.com
Lun 22 Fév 14:36:45 CET 2010


Bonjour,

La question porte sur le fait de faire une seule allocation uniquement
(la structure du thread + sa pile) ?
Un problème qui m'apparait directement, à allouer directement, est
qu'il est tout de suite plus difficile
de pouvoir faire grandir la pile. De plus, l'implémentation actuelle
utilise le mécanisme de Lazy TLB pour allouer
la page de 4k  pour la pile tandis que la structure de thread vient
d'un cache slab (kmem_cache).
Il semble juste que ce soit juste moins flexible en ce qui concerne la
gestion de la mémoire, la structure pour décrire
une structure de thread est bien inférieur à une page mémoire au
contraire de la pile.

voilà j'espère avoir pu répondre à la question.

geoffroy

2010/2/16 Konstantin Tcholokachvili <tcholoka at gmail.com>:
> Bonjour,
>
> J'ai consulté le code du threading (thread.c:
> sos_create_kernel_thread()) et remarqué que  la structure du thread et
> la pile sont alloués séparement.
>
> La question que je me pose est: est-ce qu'on aurait pu mettre la pile
> directement dans la structure décrivant le thread (char stack[4096])
> et donc allouer le thread et sa pile en même temps avec sos_kmalloc.
> Ou il faut absolument allouer la pile séparement comme maintenant?
>
> Merci d'avance,
>
> Konstantin Tcholokachvili
> _______________________________________________
> Sos mailing list
> Sos at the-doors.enix.org
> http://the-doors.enix.org/cgi-bin/mailman/listinfo/sos
>


Plus d'informations sur la liste de diffusion Sos