Je lis http://lse.sourceforge.net/locking/dcache/dcache_lock.html, dans lequel le temps spinlock pour chaque fonction est mesurée:Comment mesurer les conflits de verrouillage?
SPINLOCKS HOLD WAIT
UTIL CON MEAN( MAX) MEAN( MAX)(% CPU) TOTAL NOWAIT SPIN RJECT NAME
5.3% 16.5% 0.6us(2787us) 5.0us(3094us)(0.89%) 15069563 83.5% 16.5% 0% dcache_lock
0.01% 10.9% 0.2us(7.5us) 5.3us(116us)(0.00%) 119448 89.1% 10.9% 0% d_alloc+0x128
0.04% 14.2% 0.3us( 42us) 6.3us(925us)(0.02%) 233290 85.8% 14.2% 0% d_delete+0x10
0.00% 3.5% 0.2us(3.1us) 5.6us( 41us)(0.00%) 5050 96.5% 3.5% 0% d_delete+0x94
Je voudrais savoir où ces statistiques proviennent. J'ai essayé oprofile, mais il semble que l'oprofile ne puisse pas mesurer la tenue du verrou et le temps d'attente pour un verrou spécifique. Et drd de valgrind ralentit trop les applications, ce qui rendra le résultat moins précis et consommera trop de temps. mutrace semble bon, mais comme son nom l'indique, je crains qu'il ne puisse que tracer des exclusions de mutex.
Y a-t-il un autre outil, ou comment utiliser les outils que j'ai mentionnés plus haut, pour obtenir des statistiques sur les conflits de verrous?
Merci pour votre réponse.