Análisis de Rendimiento Avanzado de ODROID-GO: Usando ARM Streamline

Streamline es una herramienta gráfica de análisis de rendimiento que muestra datos a modo de informes tanto en formato visual como estadístico. Utiliza contadores de rendimiento de hardware con métricas de kernel para proporcionar una representación precisa de los recursos del sistema objeto de análisis. Esta página wiki describe cómo configurar y ejecutar Streamline y cómo monitorizar el ODROID-GO Advanced.

Resumen

  • Instalar DS-5 Community Edition en el PC host
  • Compilar el módulo Gator y el Kernel
  • Compilar el demonio Gator
  • Iniciar Gator en el sistema objeto de análisis y Streamline en el PC host

La Figura 1 muestra una captura de ARM Streamline con ODROID GO Advanced. En unos 48s, se inicia glmark2-es2 y puede ver las transiciones gráficas de los componentes relacionados con Mali.

Figure 1 - Sample of ARM Streamline capture with ODROID GO Advance
Figura 1 - Muestra de una captura ARM Streamline con ODROID GO Advanced

Usando ARM Streamline, puedes monitorizar los componentes principales de la CPU.

Figure 2 - Sample of ARM streamline capture with CPU information
Figura 2: Muestra de captura de ARM streamline con información de CPU

Figure 3 - Sample of ARM streamline capture with CPU information
Figura 3 - Muestra de captura de ARM streamline con información de CPU

Instalar DS-5 Development Studio

Primero, descárgate DS-5 e instálalo en tu PC Host. Si no tiene ninguna licencia, puede usar DS-5 Community Edition. El instalador lo puedes encontrar en https://developer.arm.com/products/software-development-tools/ds-5-development-studio/editions/community-edition.

Actualmente, la última versión Streamline de DS-5 Community Edition es la v6.7.1, Ésta no soporta una versión superior de gator, por encima de v6.7.1. Solo DS-5 Ultimate, Professional Edition y DS-5 Development Studio admiten la última versión de Gator. Por lo tanto, ten en cuenta que la versión actual de gator para ODROID-GO Advanced será la v6.5.1, hasta que se actualice DS-5 Community Edition.

Compilar el módulo Gator y el Kernel

En la última versión de la imagen de ODROID-GO Advanced, no existe un módulo gator. Se incluirá en la próxima versión oficial, así que recurre a las siguientes opciones si aún no ha sido publicada una nueva versión del sistema operativo.

[Opción 1] Pre-compilar gator.ko:

odroid@odroid:~$ wget https://dn.odroid.com/ODROID_GO_ADVANCE/gator.ko
[Opción 2] Compilar un kernel con el conjunto de peticiones relacionadas:
https://github.com/hardkernel/linux/commit/9b681d5c4f23eac9bad17f75ef41a2c4fe4f698b
https://github.com/hardkernel/linux/commit/fcd6a0b7a58792917c1cec64fc77ff981243b2ed

Compilar el demonio Gator del espacio de usuario

Para comunicarse con el dispositivo de destino, Streamline requiere que el demonio gator (gatord) se ejecute en el dispositivo. Aquí tienes las instrucciones para compilar el demonio gator en tu placa ODROID-GO Advanced.

Debes usar gator daemon v6.5.1 para sincronizar con el controlador gator de ODROID-GO Advanced. Además, necesitarás algunos parches para ejecutar demonio gator en ODROID-GO Advanced porque el nodo sysfs para leer la información de la GPU mali es diferente del existente en el github del software ARM.

odroid@odroid:~$ sudo apt-get install git
odroid@odroid:~$ git clone https://github.com/JeonghwaCho/gator.git -b odroid-rk3326

odroid@odroid:~$ cd ${path_of_gator}/daemon
odroid@odroid:~$ make
Ahora tendrás el binario gatord en el directorio ${path_of_gator}/daemon.

Iniciar Gator en el sistema destino y Streamline en la PC host

1. En el ODROID-GO Advanced Necesitas permiso de root para establecer una conexión ethernet y ejecutar gatord.

(1) Configurar conexión de red

odroid@odroid:~$ su
root@odroid:~# dhclient eth0
ODROID-GO Advanced conectado a través de Ethernet

(2) Desactiva el tiempo de espera de la tarea bloqueada del kernel

root@odroid:~# echo 0 > /proc/sys/kernel/hung_task_timeout_secs
(3) Ejecuta el demonio gator del espacio de usuario y el módulo del kernel
root@odroid:~# ${gator_path}/gator/daemon/gatord -m /lib/modules/$(uname
-r)/kernel/drivers/gator/gator.ko &
Puedes determinar si gator se está ejecutando:
root@odroid:~# lsmod | grep gator
gator 90112 1
La GPU Mali Bifrost de RK3326 se define en gator.ko, de modo que necesitarás obtener los eventos relacionados con ARM_Mali-Bifrost en /dev/gator/events/
root@odroid:~# ls /dev/gator/events/
ARM_Mali-Bifrost_Filmstrip_cnt0 ARMv8_Cortex_A35_cnt0
ARM_Mali-Bifrost_MMU_AS_0 ARMv8_Cortex_A35_cnt1
ARM_Mali-Bifrost_MMU_AS_1 ARMv8_Cortex_A35_cnt2
ARM_Mali-Bifrost_MMU_AS_2 ARMv8_Cortex_A35_cnt3
ARM_Mali-Bifrost_MMU_AS_3 ARMv8_Cortex_A35_cnt4
ARM_Mali-Bifrost_MMU_PAGE_FAULT_0 ARMv8_Cortex_A35_cnt5
ARM_Mali-Bifrost_MMU_PAGE_FAULT_1 ARMv8_Cortex_A35_freq
.....
.....
2. En el PC host A través de la interfaz Ethernet, puede conectar el dispositivo ODROID-GO Advanced a Streamline en tu PC host. Configura [Conexión] - [Dirección].

Figure 4 - Capture and Analysis in Streamline
Figura 4 - Captura y análisis en Streamline

Si la conexión es reconocida con éxito, todos los contadores disponibles para ODROID-GO Advanced se mostrarán en este menú.

Figure 5 - Counter configuration in Streamline
Figura 5 - Configuración del contador en Streamline

Más información

Para obtener información más detallada, consulta el sitio para desarrolladores de ARM y la guía del usuario en https://developer.arm.com/products/software-development-tools/ds-5-development-studio/streamline y https://static.docs.arm.com/dui0482/w/DUI0482W_streamline_user_guide.pdf. La entrada wiki original la puede encontrar en la página wiki de Hardkernel en https://wiki.odroid.com/odroid_go_advance/application_note/arm_streamline_on_goa.

Be the first to comment

Leave a Reply