SUSE propone 'slab_tiny' como opción de arranque para sistemas Linux con RAM muy limitada
El nuevo parámetro de arranque sustituirá a CONFIG_SLUB_TINY y permitirá a sistemas embebidos con 16 MB de RAM o menos activar una configuración de slab más ligera sin recompilar el kernel.
En 2022 el asignador SLOB fue retirado y en Linux 6.4 se eliminó. Para los sistemas embebidos con poca RAM se introdujo la opción de configuración CONFIG_SLUB_TINY que ajustaba el allocador de slab para reducir el consumo de memoria en dispositivos con 16 MB o menos.
Hoy SUSE presenta una serie de parches que reemplazan esa configuración estática por un parámetro de arranque llamado slab_tiny. El objetivo es que el kernel active el modo “tiny” en tiempo de arranque, manteniendo la misma reducción de huella de memoria pero simplificando el código y eliminando la opción de configuración.
El RFC describe que la mayoría de las optimizaciones de CONFIG_SLUB_TINY, como la eliminación de código muerto, la inyección de rutas rápidas y la fusión de cachés reclamables e irreclamables, seguirán siendo estáticas y no podrán convertirse en opciones de arranque. Se considera que la pérdida de rendimiento por no poder controlar esos puntos es mínima.
El nuevo parámetro solo debe usarse en sistemas embebidos con memoria muy limitada. Activarlo en sistemas de mayor tamaño no se recomienda, ya que desactiva la caché de objetos por CPU y afecta la escalabilidad SMP.
El repositorio de la serie de parches está disponible en el mailing list de kernel: RFC patch series.
Para los administradores de sistemas que trabajan con dispositivos IoT o de borde, la opción de arranque facilita la adopción de kernels con huella reducida sin necesidad de recompilar. Solo deberán agregar slab_tiny=1 en la línea de comandos de arranque y comprobar que el kernel no muestra advertencias sobre la desactivación de la caché por CPU.
En resumen, la propuesta de SUSE pretende modernizar la forma en que se gestionan los slab en dispositivos con RAM escasa, manteniendo el mismo ahorro de memoria y simplificando la cadena de construcción del kernel.

