2010-01-29 9 views
12

Lo que quiero hacer es crear algún tipo de gráfico que detalle la ejecución de (dos) hilos en Linux. No necesito ver qué hacen los hilos, justo cuando están programados y por cuánto tiempo, básicamente una línea de tiempo.Tracing pthread scheduling

He pasado las últimas horas buscando en internet una forma de rastrear la programación de pthreads. Desafortunadamente, los dos proyectos que encontré requieren la recompilación del kernel (LTTng) o el parche glibc (NPTL Trace Tool), los cuales no puedo hacer (un sistema grande y administrado centralmente, en el que no tengo derechos de sudo).

¿Hay alguna otra manera de hacer algo como esto o tendré que recurrir a encontrar una computadora portátil en la que pueda parchar/recompilar lo que quiera?

Saludos

PS: Me he unido a ambos proyectos, pero el sitio no me (reputación < 10) sí permite. El primer resultado de búsqueda en Google para los nombres de los proyectos es el correcto.

Respuesta

1

Tal vez algo como el VTune de Intel?

+0

Esto parece muy prometedor, lo tendré en cuenta para el futuro cuando pueda pagar ese paquete de software. – Darhuuk

+0

Acabo de probar la versión de evaluación y, a menos que esté pasando por alto algo, no hay forma de obtener una traza gráfica de los hilos en la versión de Linux, una pena realmente. Básicamente, la versión de Linux es una versión costosa de Helgrind (http://valgrind.org/docs/manual/hg-manual.html). – Darhuuk

+0

Es una lástima, nunca lo he probado, pero me pareció interesante, los gráficos son bonitos, pero si la versión de Linux no puede generarlos, entonces no es muy interesante. –

3

Los privilegios del superusuario no son necesarios para construir un instrumentado glibc/libpthread.so. El programa ptt_trace que forma parte de NPTL Trace Tool ejecutará su programa utilizando la biblioteca instrumentada.

+0

Gracias por mencionar esto. Eché otro vistazo a NPTL TT, pero parece que el proyecto no se ha trabajado desde 2006 y parchar nuevas versiones de glibc no parece funcionar. – Darhuuk

1

También hay una herramienta llamada pthreadw (en sourceforge)

Es una biblioteca envoltorio que intercepta las llamadas a las funciones habituales de la biblioteca pthread, y las estadísticas de los informes, como los tiempos típicos dedicado a jugar con las cerraduras, las variables de condición, etc ... Actualmente no puede exportar rastreos, solo informes de resumen textuales.