Parece increíble poder mezclar estos tres conceptos, pero parece ser que el pingüino nos tenia reservada una pequeña sorpresa temporal, al menos en la versión x86-64 que no parece estar muy fina a pesar de llevar ya cierto tiempo en el mercado los procesadores a los que va destinado.

Vayamos al grano, tengo una máquina AMDX2 de 64 bits con un núcleo pre-compilado de la Mandriva2007 para x86-64. El rendimiento es más que aceptable, va muy rápido y no ha dado ningún problema salvo tener que encontrar todo el software que me ha hecho falta en la versión adaptada a esta arquitectura (para poder instalar via RPM, evidentemente podría, y lo he hecho con algún paquete, haber compilado los fuentes, pero no siempre es tan sencillo como pueda parecer)

En cualquier caso, hace unos dias he tenido serios problemas de “continuidad” con el funcionamiento de esta máquina, ya que me aparecían “kernels oops” que la reiniciaban o que la dejaban en un estado inestable en el que la mayoría de señales no funcionaban (fallaba algún subsistema y todo lo relacionado con él también). Los “oops” tenían que ver con IRQs, con E/S de disco cuando haciamos trabajo intensivo sobre él, etc…

Tras googlear un rato (como siempre, donde si no?), encontré varias soluciones de gente que parecía tener el mismo problema con los drivers de nVidia (no parecía muy relacionado!), no con ellos directamente sino con el tenerlos cargados en el kernel como módulos. Parece ser que los drivers de nVidia para arquitecturas x86-64 no están muy finos (por ser suaves y no decir que petan como unos desgraciaos), el caso es que encontré abundante material y soluciones temporales a los problemas que la gente tenía con las tarjetas gráficas. La única relación que ví con mi arquitectura era que en mi placa el chipset es nForce570 !!! (vaya, driver de nVidia para E/S)

 

  • Una de las soluciones pasaba por retirar fisicamente memoria del sistema y dejarlo en 1 ó 2 GB (el tipo que tenía el problema tenía 4Gb igual que yo)… parece ser que le funcionó pero no tenía muy claro el porqué.
  • Otra de las soluciones era pasar como parámetro al kernel mem=2G , alegando que los drivers de nVidia no estaban pensados nativamente para 64bits y que no se llevan muy bien con los límites de memoria de los 32bits… teniendo en cuenta que mi placa sólo detecta 3.8GB esta solución me pareció un buen camino a seguir, y la verdad es que funcionó, pero no sabía muy bien porqué.
  • La respuesta la encontré en otro sitio donde hablaba de un parámetro del kernel que yo desconocía: report_lost_ticks

 

Este parámetro incluye en el dmesg los ticks (y los tacks… vamos todo lo relacionado con el reloj del sistema que no vaya bien) del kernel al hacer cosas. Muy interesante: con la opción de arranque normal un montón de mensajes de perdida de ticks, con la opción de 2G muchísimos menos, pero aún algunos… y los más curioso: al darle caña al procesador (haciendo trabajo en batch intensivo sobre la BDD) se perdían continuamente ticks de 2 en 2… consecuencia: el reloj corría que daba gusto, es decir en su propio eje temporal!! había encontrado la 5ª dimensión!!!

Al final, probando, probando, probé a cambiar el ventilador por otro más super-tochísimo (de 875gramos) que parece haber calmado a la cpu, pero que aún así no arregla el problema del tiki-taka…

 

No tengo una solución definitiva, solo esta orientación sobre los ticks para los que les pase algo similar con pc’s x86-64… [continuará?]