Ascii Art en errores de kernel GNU/Linux @ Sparc

Jugando con una UltraSparc II en GNU/Linux me dio un curioso crash dump:

Oct 15 12:03:54 quetzalcoatl [  253.145378] spitfire_data_access_exception:
SFSR[0000000000801009] SFAR[fffff800be90bf88], going.
Oct 15 12:03:54 quetzalcoatl [  253.145472]               \|/ ____ \|/
Oct 15 12:03:54 quetzalcoatl [  253.145495]               "@'/ .. \`@"
Oct 15 12:03:54 quetzalcoatl [  253.145517]               /_| \__/ |_\
Oct 15 12:03:54 quetzalcoatl [  253.145540]                  \__U_/
Oct 15 12:03:54 quetzalcoatl [  253.145636] emerge(3364): Dax [#1]
Oct 15 12:03:54 quetzalcoatl [  253.145687] TSTATE: 0000004411009606 TPC:
00000000004c3dd0 TNPC: 00000000004c3dd4 Y: 00000000    Not tainted

La imagen de una persona sacandome la lengua en un crash dump no es tan divertida como pensó el desarrollador del kernel…

Bootchart: Graficando el proceso de arranque de GNU/Linux

Recientemente me encontré con una herramienta muy curiosa que muestra de forma gráfica el proceso de arranque de un GNU/Linux denominada Bootchart, la cual realiza su trabajo recolectando información de los procesos durante el arranque y renderizando el resultado a un archivo png, svg (Scalable Vector Graphics) o a un eps (PostScript).

La intención de bootchart es mostrar cuando arrancan los procesos, cuánto tiempo de CPU utilizan, utilización de disco, en otras palabras, una imagen que muestre lo que sucede durante el proceso de arranque y ayude a la posterior depuración/optimización del mismo.

Instalando…

La instalación en Gentoo es sencilla

Desenmascaramos el paquete (en mi caso tengo el keyword amd64, para otros será x86)

# echo “app-benchmarks/bootchart ~amd64” >> /etc/portage/package.keywords

Agregamos la use flaga java para poder generar archivos png

# echo “app-benchmarks/bootchart java” >> /etc/portage/package.use

Instalamos

# emerge app-benchmarks/bootchart

Configurando bootchart

Es necesario agregar init=/sbin/bootchartd al final de la línea del kernel correspondiente, dentro del archivo /boot/grub/menu.lst por ejemplo:

kernel /boot/kernel-2.6.25-gentoo-r7-vostorga-0.33 init=/sbin/bootchartd

Es necesario editar el archivo /etc/conf.d/rc y cambiar

RC_USE_BOOTCHART="yes"

El archivo de configuración /etc/bootchartd.conf está muy bien documentado, pero igualmente las opciones siguientes son posiblemente en las que estaremos más interesados:

#Esta opción nos permite utilizar BSD Accounting el cual nos permite que la visualización de procesos sea más exacta, pero para activarlo necesitamos que la opción CONFIG_BSD_PROCESS_ACCT_V3 (General setup-> BSD Process Accounting-> BSD Process Accounting version 3 file format) esté activada en el Kernel , igualmente bootchart funciona si la dejamos como “no”

PROCESS_ACCOUNTING=”yes”

#Localización del archivo comprimido donde estarán los logs de Bootchart

BOOTLOG_DEST=/var/log/bootchart.tgz

#Determina si se realizará automáticamente el gráfico una vez termine el proceso de arranque

AUTO_RENDER=”yes”

#Determina el formato del gráfico, las opciones disponibles son png, svg y eps

AUTO_RENDER_FORMAT=”png”

#Directorio donde se guardarán los gráficos

AUTO_RENDER_DIR=”/var/log”

Y la prueba……la gráfica

Por ultimo, reiniciamos y obtenemos algo como lo siguiente:

…..47 segundos en mi caso, cuáles son sus tiempos?

PD: No reinicio muchas veces ya que suspendo, pero es divertido debugguear el arrance

PD2: Luego daremos un vistazo al baselayout2+openrc que seguro disminuye el arranque en Gentoo GNU/Linux

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.