Je me permets une petite correction au niveau du tracing.
ftrace, Lttng, et systemtap sont présentés ici comme étant en compétition, or c'est faux, ils sont complémentaires. Et ils ont des rôles différents.
ftrace permet d'appliquer une fonction qui hooke quasiment toutes les fonctions du kernel. C'est lourd mais complet, tandis que les tracepoints ne s'appliquent qu'à des fonctions particulières.
Remarquez, ftrace permet aussi de ne tracer que certaines fonctions mais c'est un truc à régler côté utilisateur.
En somme les tracepoints sont prévus pour du débuggage chirugical. On vise une ou quelques fonctions mais c'est tout.
ftrace est plutôt prévu pour tracer massivement, ou tracer seulement certaines fonctions à partir de certains critères (du style avec expression régulière, en choisissant tel préfixe ou suffixe, ou encore tracer uniquement une tâche etc....)
Les tracepoints font partie du projet LTTng.
Pour ce qui est de systemtap c'est encore différent, il s'agit de scripts que l'on peut produire côté utilisateur et donc les instructions sont executées côté kernel.
Si vous êtes interessés, pour plus de détails, je vous conseille une interview de Mathieu Desnoyers: http://www.linuxfoundation.org/events/node/153 qui explique bien le caractère complémentaire de ces 3 systèmes.
Et enfin concernant le ring buffer, il n'est pas encore sans vérrou :-)
Il utilise des spinlocks en interne lors de l'insertion d'un évenement.
Et il ne le sera pas non plus pour le 2.6.29, par contre il y a de grandes chances pour 2.6.30 :-)
# A propos du tracing
Posté par fweisbec . En réponse à la dépêche Le noyau Linux 2.6.28 est disponible. Évalué à 10.
ftrace, Lttng, et systemtap sont présentés ici comme étant en compétition, or c'est faux, ils sont complémentaires. Et ils ont des rôles différents.
ftrace permet d'appliquer une fonction qui hooke quasiment toutes les fonctions du kernel. C'est lourd mais complet, tandis que les tracepoints ne s'appliquent qu'à des fonctions particulières.
Remarquez, ftrace permet aussi de ne tracer que certaines fonctions mais c'est un truc à régler côté utilisateur.
En somme les tracepoints sont prévus pour du débuggage chirugical. On vise une ou quelques fonctions mais c'est tout.
ftrace est plutôt prévu pour tracer massivement, ou tracer seulement certaines fonctions à partir de certains critères (du style avec expression régulière, en choisissant tel préfixe ou suffixe, ou encore tracer uniquement une tâche etc....)
Les tracepoints font partie du projet LTTng.
Pour ce qui est de systemtap c'est encore différent, il s'agit de scripts que l'on peut produire côté utilisateur et donc les instructions sont executées côté kernel.
Si vous êtes interessés, pour plus de détails, je vous conseille une interview de Mathieu Desnoyers: http://www.linuxfoundation.org/events/node/153 qui explique bien le caractère complémentaire de ces 3 systèmes.
Et enfin concernant le ring buffer, il n'est pas encore sans vérrou :-)
Il utilise des spinlocks en interne lors de l'insertion d'un évenement.
Et il ne le sera pas non plus pour le 2.6.29, par contre il y a de grandes chances pour 2.6.30 :-)