estoy leyendo http://lse.sourceforge.net/locking/dcache/dcache_lock.html, en el que el tiempo spinlock para cada función se mide:¿Cómo medir la contención de bloqueo?
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
Me gustaría saber donde estas estadísticas son de. Probé Oprofile, pero parece opérculo no puede medir la espera de bloqueo y el tiempo de espera de un bloqueo específico. Y el drd de valgrind ralentiza demasiado las aplicaciones, lo que hará que el resultado sea menos preciso y también consuma demasiado tiempo. mutrace parece bueno, pero como su nombre lo indica, me temo que solo puede rastrear exclusiones mutex.
¿Hay alguna otra herramienta, o cómo usar las herramientas que mencioné anteriormente, para obtener las estadísticas de contención de bloqueo?
Gracias por su respuesta.