Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Liens connexes

Dépêche modérée par

Dépêche éditée par

Logiciel : PTT : un outil de trace pour la NPTL

Posté par Matthieu C (). Modéré le 14 avril 2005.
Linux
La NPTL (Native POSIX Thread Library) remplace de plus en plus l'ancienne bibliothèque Linux-Threads pour des raisons de performances, fiabilité et de conformité POSIX.

L'implémentation commence a être bien testée, cependant la plupart des bugs rencontrés avec la NPTL se trouvent au niveau de l'application utilisateur. Ces problèmes sont très difficiles à détecter et à résoudre car ils peuvent dépendre de plusieurs facteurs comme la charge de la machine et le nombre de processeurs.

De plus l'utilisation de débogueurs entraîne la modification de la dynamique des applications, ce qui rend leur utilisation très difficile dans un contexte multi-threadé.

PTT (POSIX Thread Trace Toolkit pour la NPTL), publié sous licence LGPL, a pour but d'aider à résoudre ces problèmes et à faciliter l'analyse d'applications multi-threadées complexes.

Il fournit des outils qui permettent de tracer les évènements importants intervenant au niveau de la NPTL (entrée/sortie dans les routines, prise/relâchement de lock, ...) tout en ayant un impact faible.

C'est en quelque sorte l'équivalent de LTT (Linux Trace Toolkit) sauf qu'on se place au niveau de la NPTL au lieu du noyau.

Un de ses avantages est qu'aucune modification au niveau kernel n'est nécessaire et qu'il est même possible d'utiliser l'outil sans la moindre intervention du super-utilisateur, ni modification de l'application.

> Lire la dépêche (174 commentaires, moyenne: 2,2).  

La version actuelle ne fonctionne que sur IA-32 et ses possibilités d'analyse sont limitées.

Il est prévu d'améliorer les outils d'analyse des traces générées (options de filtrage...), de porter sur IA-64 et PPC et d'étendre les traces à toutes les fonctions importantes.

L'application à tracer est lancée par une commande qui démarre un démon.
Celui-ci récupère les traces envoyées par la NPTL et les écrit dans un fichier binaire de trace.

La communication entre le démon et la NPTL se fait à l'aide d'un buffer en mémoire partagée et d'opérations atomiques.

Le fichier de trace obtenu peut être analysé par la suite sous différents formats textuel ou graphique (avec Pajé).

Plus d'information sont disponibles sur le site ou dans l'archive.

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

vs POSIX shared memory

Posté par free2.org (page perso, ) le 14/04/2005 à 10:31. (lien). Évalué à 4.

Je pense qu'utiliser des processus communiquant via des POSIX shm est aussi efficace que les threads, et élimine certains bugs difficiles à cerner (notamment quand un thread modifie par inadvertance, via un pointeur, les données privées d'un autre thread).