PDF de programación - Ftrace y kernelshark

Imágen de pdf Ftrace y kernelshark

Ftrace y kernelsharkgráfica de visualizaciones

Publicado el 14 de Enero del 2017
568 visualizaciones desde el 14 de Enero del 2017
454,3 KB
34 paginas
Creado hace 11a (05/03/2013)
Ftrace y kernelshark

Diseño y Evaluación de Configuraciones

Curso 2012-13

Miguel Telleria de Esteban

telleriam AT unican.es

Computadores y Tiempo Real

http://www.ctr.unican.es

Ftrace y terminología

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Ftrace



Infraestructura para visualizar lo que hace el kernel de linux a bajo nivel
● Eventos de planificación
● Eventos de gestión de memoria



Interrupciones

● …

● Aplicaciones

● Debugueo del kernel
● Ver la planificación de procesos
● Uso de memoria, disco duro
● System calls
● …

● Viene de serie con kernel (> 2.6.30)

● Con cada versión de kernel tenemos más eventos
● Mantenedor: Steven Rodstedt (contribuidor a RT_PREEMPT)

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 3 de 34

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Arquitectura de Ftrace

Subsist kernel

sched

mm

Codigo

+

config

Eventos ftrace

sched

mm

hrtimer

syscall

hrtimer

syscall

kernelshark

utiliza

visualiza

trace.dat

start - stop

Ejecución

DebugFS

trace-cmd

plugin
format

report

extract

registra

Ftrace
buffer

Espacio kernel

Parseador

propio

trace.txt

Espacio usuario

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 4 de 34

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Eventos, plugins y tracers

● Los eventos se organizan por subsistemas del kernel. En un 2.6.32

(Debian Squeeze).
ftrace i915

block
sched skb (socket buffers) syscall timer workqueue

irq kmem module power

● La lista completa se obtiene con:
● Los plugins afectan a la presentación del texto para ciertos eventos.

# trace-cmd list -e

Se obtienen con:
# trace-cmd list -P
● Para un parseado homogéneo, recomiendo deshabilitarlos.

● Los tracers son programas que engloban a eventos y plugins

● sched_switch (obsoleto)
● blk
● Otros tracers requieren de la recompilación para activarse:

initcall (boot options initcall_debug ftrace=initcall)
nop (ningun plugin)

– Function

function-graph irqsoff wakeuprt

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 5 de 34

Mas Información: https://wiki.linaro.org/KenWerner/Sandbox/ftrace

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

¿Quién define qué eventos están disponibles?
● A la hora de la captura y extracción: El kernel y su config

● Eventos y tracers disponibles

– Cuanto más avanzado el kernel, más eventos tenemos

● Salida de esta fase: trace.dat

● A la hora del análisis: El fichero trace.dat

● El fichero trace.dat auto-contiene la lista de eventos y parámetros.
● El análisis se puede hacer desde otro ordenador con diferente:

– Arquitectura (ej i386, amd64)
– Kernel (ej 2.6.32, 3.2)
– Endiannes (big-endian, little-endian)

● Ni kernelshark ni trace-cmd definen los eventos

● Versiones nuevas de las herramientas ayudan al análisis no al

contenido

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 6 de 34

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Eventos y parametros

Para obtener la lista: trace-cmd report --events

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 7 de 34

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Eventos para un diagrama de ejecución

● Eventos de la familia sched:

● sched_wakeup

– Un thread entra en la ready queue (aun no ejecuta)

● sched_switch

– Un thread comienza o deja de ejecutar

● sched_migrate_task

– Un thread pasa a la ready queue de otro core

● Latencia:

● Diferencia de tiempo entre el sched_wakeup y el correspondiente

sched_switch

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 8 de 34

Workflows

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Trace-cmd y kernelshark

● Trace-cmd: Front-end consola de Ftrace via DebugFS

● Selección de eventos, plugin-tracers y opciones
● Activación y parada de la captura
● Traspaso a user-space de los ficheros de traza en binario
● Traducción del binario para generar salida en texto

● Kernelshark: Interfaz gráfica de visualización y captura Ftrace
● Realiza todas las operaciones de trace-cmd excepto la traducción de

trace.dat a texto.

● Diagramas de ejecución en el tiempo
● Filtra CPU, tarea y eventos
● Hace zooms in y out
● Mide tiempos dentro del diagrama
● Aun algo inestable pero bastante usable

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 10 de 34

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Obtención de trace-cmd y kernelshark

● Obtener las fuentes del git de su autor Steven Rodstedt
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git

● Compilar e instalar:

– make gui && make doc && sudo make install_gui && sudo make install_doc

● Como paquete Debian:

● En Ubuntu tienen la versión 1.03 obsoleta: no captura desde kernelshark
● En la web tenemos empaquetada la versión 2.1.0

– Descargar: wget

http://www.ctr.unican.es/asignaturas/dec/Doc/kernelshark_debian_squeeze.tar.gz

– Descomprimir (tar -zxvf kernelshark_debian_squeeze.tar.gz)


Instalar: sudo dpkg -i *.deb

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 11 de 34

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Workflow con KernelShark

1. Preparar el sistema para tracear

1. Preparar la configuración
2. Arrancar y ver que funciona
3. Pararlo

2. Ejecución bajo traceo

1. Configurar eventos de captura en kernelshark
2. Comenzar la captura
3. Ejecutar sistema

1. Anotar los PID's que se quieren observar

4. Detener la captura
5. Guardar fichero trace.dat (copiarlo porque ya existe en el directorio)
6. Exportar a texto con

1. trace-cmd report -R <fichero trace.dat>

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 12 de 34

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Workflow con trace-cmd

● Como root:

● Arrancar y parar una captura

– Trace-cmd start -e sched
– Trace-cmd stop

● Extraer el fichero (binario) de trazas

– Trace-cmd extract

● Como usuario:

● Pasar el fichero binario a texto

– Trace-cmd report -R <fichero.dat> (por defecto trace.dat)

● Visualizar gráficamente

– Kernelshark <fichero.dat>

● Más información y opciones: Páginas man

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 13 de 34

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Workflow con debugfs (si no tenemos trace-cmd)
● Montar el debug fs en un directorio

● Mount -t debugfs none /debug (/debug debe existir)
● Esto hace que aparezca /debug/tracing

● Consultar los traceadores que tenemos compilados en el kernel

● cat /debug/tracing/available_tracers

● Seleccionar sched_switch

● echo sched_switch > /debug/tracing/current_tracer

● Activar el traceado

● Echo 1 > /debug/tracing/tracing_enable

● Esperar
● Desactivar el traceado

● Echo 0 >/debug/tracing/tracing_enable

● El traceado está en el fichero /debug/tracing/trace

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 14 de 34

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Detalles de DebugFS

● Se monta (como root) por:

● mount -t debugfs nonedev /sys/kernel/debug

● Interioridades de /sys/kernel/debug/tracing

available_events:
available_tracers
buffer_size_kb
current_tracer
events
options
per_cpu
set_event
trace
trace_clock
trace_marker
trace_options
trace_pipe
tracing_cpumask
tracing_on
tracing_enabled
saved_cmdlines
printk_formats

Eventos habilitados (RO)
lugin-tracers habilitados (RO)
Tamaño del buffer circular del kernel (RW)
Plugin-tracer usado (RW)
Directorio con los eventos disponibles
Directorio con las opciones disponibles
Acceso a los datos de cada core
Eventos extras que se capturan (RW)
Traza resultado (RO)
Relojes (local core, global core o medio) (RO)
Entrada para datos de usuario entrelazados (WO)
Opciones activas de la traza (RW)
Acceso a la traza en modo consumidor (RO)
Máscara de captura de trazas de CPU (RW)
Traza activa o parada (RW)
Versión obsoleta de tracing_on
Buffer interno de para asociar PIDs y cmdlines
Formatos de cada evento (RO)

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 15 de 34

Recorrido rápido por KernelShark

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

Análisis desde kernelshark

diagrama

lista

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 17 de 34

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y kernelshark

KernelShark: lo que se muestra en la pantalla

● Vista de diagrama:

● Diagramas de CPU: Cada task tiene un color distinto.
● Diagramas de task: Cada CPU que usa la task tiene un color distinto

● Vista de lista (lo no evidente):

● Timestamp en sg.us
● Latency: Flags

– d: disabled interrupts
– N: Needs schedule
– h, s: In hard or soft irq
– Preemption counter (si != '.', el kernel no expulsa otras tareas)


(kernel < 2.6.39) Lock depth: Si se tiene le BKL cogido

4 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Página 18 de 34

Computadores y Tiempo Real
Universidad de Cantabria

Diseño y Evaluación de Configuraciones

Ftrace y
  • Links de descarga
http://lwp-l.com/pdf1075

Comentarios de: Ftrace y kernelshark (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad