Programador de Linux escrito en Rust muestra resultados prometedores para el rendimiento en juegos
Un prototipo de planificador de Linux escrito en Rust y conectado mediante eBPF supuestamente mejora el rendimiento en juegos bajo una fuerte carga del sistema, como compilar un kernel en segundo plano. Los comentaristas señalan que las mejoras provienen de un algoritmo de planificación especializado para una carga concreta y de la nueva infraestructura sched_ext, no de que Rust sea intrínsecamente más rápido que C, aunque aun así lo ven como una prueba significativa de que Rust puede encargarse de tareas centrales y sensibles al rendimiento. El hilo también destaca cómo los planificadores intercambiables en espacio de usuario permiten experimentar rápidamente, junto con debates recurrentes sobre el hype de Rust, la ergonomía y su papel al reemplazar o complementar a C en sistemas de bajo nivel.
Rust vs C y rendimiento
- Muchos sostienen que la mejora de rendimiento proviene del algoritmo de planificación y de la especialización para la carga de trabajo, no de Rust en sí.
- Otros señalan que Rust aún puede importar de forma indirecta: una mayor seguridad y mejor ergonomía pueden facilitar intentar algoritmos más complejos o arriesgados y hacerlos correctamente.
- Se enfatiza que cualquier planificador de este tipo podría escribirse en C (u otros lenguajes) y que C puede implementar algoritmos arbitrariamente complejos.
Rust en el kernel y sched_ext/eBPF
- Varios comentarios subrayan que la verdadera historia es que un componente central del kernel puede construirse mediante sched_ext y eBPF, y que la parte en espacio de usuario se escribió en Rust casi de forma incidental.
- La parte del lado del kernel de este programador está en C; Rust se usa para la lógica en espacio de usuario.
- Ya existen otros planificadores sched_ext, algunos totalmente en C dentro del kernel, otros con C en espacio de usuario, que superan al planificador predeterminado para ciertas cargas de trabajo de producción.
Comportamiento del planificador y benchmarks
- La ganancia mostrada es para juegos con una tarea pesada en segundo plano (por ejemplo, compilar el kernel) y está explícitamente limitada a una carga de trabajo específica.
- Algunos ven el resultado como impresionante para algo improvisado durante unas vacaciones; otros advierten que los planificadores de juguete o especializados suelen omitir casos límite y pueden rendir peor que otros más generales en otros escenarios.
- Hay debate sobre si las compilaciones del kernel suelen estar limitadas por CPU o por E/S/memoria; el consenso es “depende del sistema”.
Interactividad y prioridad de la “ventana activa”
- Varios comentaristas destacan que la capacidad de respuesta del escritorio bajo carga es la métrica interesante.
- A algunos les sorprende que Linux no priorice de forma más agresiva el proceso en primer plano/interactivo; otros señalan que el kernel no tiene un concepto inherente de “ventana activa” y que solo son posibles heurísticas.
- Se mencionan planificadores pasados y fuera del árbol que apuntaban a la interactividad como precedentes.
Hype, guerras de lenguajes y dinámica comunitaria
- Varios critican los titulares y la cobertura de terceros por exagerar un experimento de aficionado y alimentar la cultura de “reescríbelo en Rust”.
- Otros responden que la experimentación es saludable, que el uso de Rust en el kernel merece ser noticia y que todas las comunidades de lenguajes pasan por una fase de hype.
- Hay preocupación de que la defensa agresiva y el encuadre moral en torno a los “lenguajes inseguros” pueda resultar repelente.
Seguridad y modos de fallo
- Surgen preguntas sobre interbloqueos y sobre cómo garantizar que el propio planificador en espacio de usuario reciba tiempo de CPU.
- Las respuestas describen un watchdog que descarga un planificador que se comporta mal y vuelve al predeterminado, además de lógica para asegurar que la tarea del planificador se ejecute cuando sea necesario.
- Se reconoce que descargar la planificación al espacio de usuario tiene sobrecarga y riesgo, por lo que otros planificadores pueden ser mejores para producción.