Devs do Google Stadia estão tendo dificuldade com o agendador do kernel Linux


Alguns acreditam que um dos principais equívocos ao começar a trabalhar com o Linux é acreditar que ele funciona de forma semelhante ao Windows, principalmente quando se trata de questões mais técnicas. Parece que é exatamente isso que os desenvolvedores de jogos do Google Stadia estão sentido na pele ao trazer seus jogo para a plataforma Linux.

Entre os problemas que os desenvolvedores têm enfrentado com esse "novo mundo" aparentemente decorrem de problemas no agendador do kernel Linux. Usuários de longa data do sistema do pinguim provavelmente já vivenciaram a chegada de algumas melhorias nesse sentido há algum tempo, com desenvolvedores independentes, como é o caso de Con Kolivas com os seus agendadores BFS e MuQSS, promovendo isso.

Para demostrar sua frustração com o agendador do Linux, o experiente desenvolvedor Malte Skarupke escreveu uma extensa postagem em seu blog pessoal descrevendo as dificuldades que teve em fazer as coisas funcionassem como gostaria e como o agendador do Linux está bom, porém, ainda "longe do ideal".

"Eu descobri que a maioria das implementações mutex são realmente boas, que a maioria das implementações de spinlock são muito ruins e que o agendador do Linux está bom, mas longe do ideal. A substituição mais popular, o agendador MuQSS tem outros problemas. (o agendador do Windows é muito bom)", disse Malte Skarupke.

Segundo Malte, o agendador do kernel Linux estava causando maior latência do que o esperado, o que não é o ideal para a experiência que se planeja entregar com o Google Stadia. Em resposta a um comentário de Con Kolivas, o desenvolvedor escreveu:

"Eu sei que não fomos os únicos desenvolvedores que tiveram problemas com o agendador no Stadia. E o Google está muito ciente do problema. Eles se preocupam muito com a latência, porque a latência é super importante para a experiência do Stadia. E uma das maneiras pelas quais eles reduziram a latência é rodar jogos a 60hz que antes rodavam a 30hz no console. Mas isso significa que você tem apenas 16 ms para obter um quadro na tela e, se o agendador fornecer um engate aleatório de um milissegundo, você está ferrado."

"Portanto, essa pode ser uma oportunidade para você obter o agendador do [MuQSS] usado por mais pessoas e, eventualmente, colocá-lo no kernel da linha principal. Se você puder resolver o problema que o ticket_spinlock encontrou, recomendo seu agendador em vez do agendador padrão sem ressalvas. E talvez você possa entrar em contato com o Google e ver se eles querem usar seu agendador com o Stadia."

Para tentar solucionar o problema, Con Kolivas sugeriu que Malte Skarupke desativasse o modo economia de energia do Linux para a CPU, provavelmente habilitando o modo performance, e garantir que "todos os threads estejam funcionando com a frequência/desempenho máximos", o que segundo ele "pode ter efeitos dramáticos nos benchmarks de desempenho que envolvem qualquer tempo ocioso".

Curiosamente, alternar o governor da CPU para o modo performance, além de realizar coisas como mudar a prioridade de operações de Entrada e Saída (I/O) do cliente (jogo), são mudanças feitas pela ferramenta GameMode, da Feral Interactive.

De qualquer forma, vamos esperar por mais melhorias no agendador do kernel Linux em 2020 e, talvez, até ver o MuQSS ser incorporado, já que parece beneficiar os jogos rodando no Google Stadia.


FONTE: Phoronix
Tags :
Comentários