Sistema

El núcleo a medida

El núcleo linux-tkg parcheado para la BC-250, los parámetros de arranque y los núcleos a evitar.

El corazón de las optimizaciones de SkillFishOS es un núcleo compilado a medida para la BC-250, basado en linux-tkg — una receta de compilación de la Frogging Family que aplica parches orientados al rendimiento y a los juegos.

Versión y parches

El núcleo de SkillFishOS es la versión 7.2.0-skillfishos (las series 7.0 y 7.1 están fuera de mantenimiento). Sobre los parches estándar de linux-tkg incluye:

  • el parche de desbloqueo de frecuencia de la BC-250 (rango 350–2230 MHz);
  • el parche de 40 CU, que activa todas las unidades de cómputo de la GPU;
  • un parche propio RDSEED-quiet, que calla un mensaje ruidoso del núcleo en este hardware.

El paquete del núcleo (imagen y cabeceras) se publica como entrega y está retenido (apt-mark hold) para que una actualización de Debian no lo sustituya por un núcleo inadecuado. Es el núcleo por defecto en GRUB.

Parámetros de arranque (cmdline)

La línea de órdenes del núcleo está configurada así, y cada parámetro tiene un motivo preciso:

mitigations=off
split_lock_detect=off
ttm.pages_limit=1572864
ttm.page_pool_size=1572864
Parámetro Qué hace
mitigations=off desactiva las protecciones contra Spectre y Meltdown para exprimir el rendimiento (una decisión aceptable en una consola de casa)
ttm.pages_limit / ttm.page_pool_size el techo del GTT, contado en páginas de 4 KiB: 1572864 = 6 GiB, de modo que Vulkan ve unos 13 GiB entre VRAM y GTT (útil para la IA). Antes era amdgpu.gttsize, en desuso desde el núcleo 7.x: con ambos puestos, el controlador obedece a este y lo dice en cada arranque
split_lock_detect=off desactiva el detector de split lock, que si no ahoga los procesos que hacen accesos atómicos no alineados (los juegos y los emuladores los hacen)

¿Y el DisplayPort? El HPD de la BC-250 está averiado (ver hardware), pero SkillFishOS no usa el parámetro video=DP-1:e: el servicio skillfish-dp-hotswap vigila el EDID y vuelve a habilitar la salida cuando el monitor regresa. Eso cubre además el caso de encender el monitor después de la placa, que el parámetro por sí solo no resuelve.

Unidades de cómputo en caliente. SkillFishOS ya no usa el parámetro amdgpu.bc250_cc_write_mode=3 (que clavaba 40 CU en el arranque y bloqueaba los cambios en caliente). Ahora el sistema arranca con el mínimo del controlador (24 CU) y un servicio lleva a 40 en caliente al inicio; puedes cambiarlas sin reiniciar desde el Tuner. Ver GPU y overclock.

Núcleos a evitar

No todos los núcleos recientes se llevan bien con este hardware. En particular, las series 6.15.0–6.15.6 y 6.17.8–6.17.10 son conocidas por dar problemas y conviene esquivarlas. SkillFishOS trae su propio núcleo probado justamente para evitar esos retrocesos — ver Actualizaciones.

IOMMU

Como se dice en la página de hardware, la IOMMU no debe activarse nunca en la BC-250: es inestable. El núcleo arranca siempre con la IOMMU desactivada.

Por qué un núcleo propio y no XanMod ni el estándar

  • Al núcleo estándar de Debian le faltan los parches de la BC-250 (desbloqueo de frecuencia, 40 CU) y arrastra los retrocesos mencionados arriba.
  • linux-tkg facilita aplicar los parches propios y elegir planificadores y opciones pensados para jugar.
  • Compilarlo nosotros significa que actualizamos el núcleo solo cuando una versión nueva aporta algo real y después de probarla en el hardware.

Fuentes