• [^] # Re: LWPs, my mistake.

    Posté par (site web personnel) . En réponse à la dépêche performances MySQL sous OpenBSD. Évalué à 3.

    1/ Ah non ! (je me fais écho d'un post plus haut mais c'est pour faire poid). Pour un fois qu'on a des discutions interressantes, pas triviales, sans troll, et en rapport avec le sujet ....


    C'est tellement rare que je me demande quand est ce qu'était la dernière fois où j'ai eu plaisir comme ca à lire les commentaires, pour une fois ils sont utiles.


    Au contraire, il faudrait en voir plus souvent (ou alors mettez mon adresse mail dans le follow-up :)





    2/ Bon, je suis plus qu'inexpérimenté en la matière, je ne connais que la théorie (et encore, c'est flou). Par contre je me pose une question :


    Qu'on fasse le switch en user-space ou par le noyeau ce qu'il y a à faire est à peu près la même chose non ? je concois mal que le noyeau aille alors moins vite que du code en user space. Il doit surement y avoir des choses faites en trop puisque vous semblez d'accord, lesquelles ?





    Dans le même esprit :


    Si on avait des switch que entre les threads je comprend que il puisse y avoir avantage (si effectivement le noyeau fait trop de choses lors d'un switch). Sauf que en fait le noyeau va rester peu de temps sur le processus à chaque fois donc va de toute facon faire des changements de contexte très souvent, à partir du moment où il change de contexte autant faire en sorte quand il le fait qu'on arrive directement sur le thread suivant (thread au niveau noyeau, puisque ce sont des processus différents) au lieu d'arriver toujours sur le meme et de redoubler le changement de contexte pour changer de thread dans le processus (méthode thread user space).


    Bon, j'ai du mal à m'exprimer alors un petit shéma :





    Ath1 (chg de contexte noyeau) B (chg contexte noyeau) Ath2 .....


    est logiquement plus interressant que :


    A th1 (chg contexte noyeau) B (chg contexte noyeau) A (chg contexte user) th2 ....





    J'ai l'impression qu'il y a deux chg alors qu'on pourrait en mettre un seul. J'ai fait une erreur ? j'ai mal compris un truc car là si j'ai compris il n'y a aucun interet à ne pas utiliser le noyeau pour les threads