Agendador do Linux Escrito em Rust Mostra Resultados Promissores para Desempenho em Jogos
Um protótipo de agendador Linux escrito em Rust e integrado via eBPF reportedly melhora o desempenho em jogos sob forte carga do sistema, como compilar o kernel em segundo plano. Os comentaristas observam que os ganhos vêm de um algoritmo de escalonamento especializado para a carga de trabalho e da nova infraestrutura sched_ext, não do Rust ser inerentemente mais rápido que C, embora ainda vejam isso como uma prova importante de que Rust pode lidar com tarefas centrais e sensíveis a desempenho. O debate também destaca como agendadores em espaço de usuário e intercambiáveis facilitam a experimentação rápida, junto com discussões recorrentes sobre hype em torno do Rust, ergonomia e seu papel em substituir ou complementar C em sistemas de baixo nível.
Rust vs C e Desempenho
- Muitos argumentam que o ganho de desempenho vem do algoritmo de escalonamento e da especialização da carga de trabalho, não do Rust em si.
- Outros observam que o Rust ainda pode importar indiretamente: maior segurança e ergonomia podem tornar mais fácil tentar algoritmos mais complexos ou arriscados de forma correta.
- É enfatizado que qualquer agendador כזה poderia ser escrito em C (ou em outras linguagens) e que o C pode implementar algoritmos arbitrariamente complexos.
Rust no Kernel e sched_ext/eBPF
- Vários comentários enfatizam que a verdadeira história é que um componente central do kernel pode ser construído via sched_ext e eBPF, e que a parte em espaço de usuário foi escrita em Rust quase incidentalmente.
- A parte do kernel deste agendador está em C; Rust é usado para a lógica em espaço de usuário.
- Já existem outros agendadores sched_ext, alguns totalmente em C no kernel, alguns com C em espaço de usuário, que superam o agendador padrão para certas cargas de produção.
Comportamento do Agendador e Benchmarks
- O ganho mostrado é para jogos com uma tarefa pesada em segundo plano (por exemplo, compilar o kernel) e é explicitamente específico da carga de trabalho.
- Alguns veem o resultado como impressionante para algo improvisado durante um feriado; outros alertam que agendadores de brinquedo ou especializados muitas vezes omitem casos extremos e podem ter desempenho inferior a outros mais gerais em contextos diferentes.
- Há debate sobre se compilações do kernel costumam ser limitadas por CPU ou por IO/memória; o consenso é “depende do sistema”.
Interatividade e Prioridade da “Janela Ativa”
- Vários comentaristas destacam que a responsividade da área de trabalho sob carga é a métrica interessante.
- Alguns se surpreendem que o Linux não priorize de forma mais agressiva o processo em primeiro plano/interativo; outros observam que o kernel não tem um conceito inerente de “janela ativa” e que apenas heurísticas são possíveis.
- Agendadores anteriores e fora da árvore com foco em interatividade são mencionados como trabalhos prévios.
Hype, Guerras de Linguagens e Dinâmica da Comunidade
- Vários criticam manchetes e cobertura de terceiros por supervalorizar um experimento de hobby e alimentar a cultura de “reescreva isso em Rust”.
- Outros contra-argumentam que experimentar é saudável, o uso do Rust no kernel é notícia, e toda comunidade de linguagem passa por uma fase de hype.
- Há preocupação de que defesa agressiva e enquadramento moral em torno de “linguagens inseguras” possam ser desagradáveis.
Segurança e Modos de Falha
- São levantadas perguntas sobre deadlocks e sobre como garantir que o próprio agendador em espaço de usuário receba tempo de CPU.
- As respostas descrevem um watchdog que descarrega um agendador com comportamento problemático e reverte para o padrão, além de lógica para garantir que a tarefa do agendador seja executada quando necessário.
- É reconhecido que transferir o escalonamento para o espaço de usuário tem sobrecarga e risco, de modo que outros agendadores podem ser melhores para produção.