FERRAMENTAS LINUX: O agendador do kernel do Linux aparentemente causa problemas para desenvolvedores de jogos do Google Stadia

quinta-feira, 2 de janeiro de 2020

O agendador do kernel do Linux aparentemente causa problemas para desenvolvedores de jogos do Google Stadia



Confira !!



Entre os problemas que os desenvolvedores de jogos têm enfrentado ao trazer seus jogos para o Linux para o serviço de jogos em nuvem Stadia do Google, aparentemente decorrem de problemas no agendador do kernel. Sabíamos que o agendador do kernel do Linux poderia usar algumas melhorias e desenvolvedores independentes, como Con Kolivas com BFS / MuQSS, promoveram isso, mas esperamos que em 2020 veremos alguma ação real.

O desenvolvedor de jogos / C ++, Malte Skarupke, escreveu um post sobre o quão ruim o agendador de kernel do Linux é e que soluções como MuQSS são uma melhoria, mas não estão completas. Malte observou: "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 está longe do ideal. A substituição mais popular, o agendador MuQSS tem outros problemas. (o agendador do Windows é muito bom). "

Os últimos problemas do agendador de kernel parecem ser os desenvolvedores de jogos / mecanismos que estão enfrentando problemas na preparação de seu software para o Google Stadia".Então tudo começou assim: eu ouvi alguém no trabalho reclamando de barracas misteriosas enquanto carregava Rage 2 para a Stadia. A única coisa que essas barracas misteriosas tinham em comum era que elas estavam usando spinlocks. Fiquei curioso sobre isso porque eu era a pessoa que escreveu o spinlock que estávamos usando. O problema era que havia um encadeamento que passava vários milissegundos tentando adquirir um spinlock em um momento em que nenhum outro encadeamento estava segurando o spinlock. Permita-me repetir: o spinlock estava livre para levar ainda um segmento que levou vários milissegundos para adquiri-lo. Em um videogame, onde é necessário obter uma imagem na tela a cada 16 ms ou 33 ms (dependendo se você estiver rodando a 60hz ou 30hz), uma barraca que leva mais de um milissegundo é terrível. Especialmente se você estiver literalmente protelando todos os tópicos."

Em um comentário do desenvolvedor líder do MuQSS, Con Kolivas, Malte respondeu:"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 rodam a 30Hz no console. Mas isso significa que você só tem 16ms para obter um quadro na tela e, se o agendador fornecer um engate aleatório de um milissegundo, você estará 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 sobre o agendador padrão sem reservas. E talvez você possa entrar em contato com o Google e ver se eles querem usar seu agendador para o Stadia."

Ele também publicou um código de referência mutex que agora estou procurando o possível uso do PTS na comparação de kernels. Leia mais particularmente sobre o desempenho dos spinlocks x mutexes através desta postagem no blog .

Vamos esperar por melhorias no planejador do kernel Linux em 2020 e talvez até ver o MuQSS ser mainstream se houver suporte suficiente.


Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário