Uma correção de última hora foi submetida para o kernel Linux 6.14, com lançamento estável previsto para o próximo domingo. Essa correção reverte uma alteração feita no código do agendador do kernel há dois anos, que acabou prejudicando o desempenho de algumas workloads com um impacto significativo.
A alteração em questão, implementada há quase dois anos, visava reduzir o custo do tratamento sched_move_task
ao usar a configuração CONFIG_SCHED_AUTOGROUP
. Em um teste simples com um loop de um script bash que iniciava muitos comandos “sleep” como processos separados, essa alteração reduziu o tempo de execução em cerca de 57%.
No entanto, descobriu-se que essa tentativa de otimização estava prejudicando outras workloads do Linux. A correção submetida hoje reverte o código, eliminando uma regressão de desempenho de cerca de 30% no teste de spawn do UnixBench. Essa regressão foi relatada por um engenheiro da Amazon ao executar testes em sua nuvem AWS com o auto-grupo ativado. Outras workloads, além do UnixBench, também são afetadas.
Ingo Molnar enviou o pull request do agendador hoje com essa reversão e comentou:
“É verdade que é um pouco tarde no ciclo, e a regressão é antiga, mas o impacto no desempenho é substancial para as workloads afetadas, então não quis atrasar essa correção.”
A menos que haja alguma objeção por parte de Linus Torvalds, essa correção/reversão de regressão de desempenho deve ser mesclada no Linux 6.14 Git ainda hoje.
Links relevantes:
- Para mais detalhes sobre a correção, consulte a mensagem na lista de discussão do kernel Linux.