Já faz um bom tempo desde a minha última publicação por aqui. Como este foi um ano de mudanças colossais para mim, talvez seja hora de fazer algo diferente com este blog e publicar algo só para variar um pouco, então por que não começar a falar sobre a XDC 2025?
Este ano, participei da XDC 2025 em Viena como desenvolvedor da Igalia. Fiquei muito feliz em rever alguns colegas com quem trabalhei no passado e outros com quem trabalho atualmente. Tive a oportunidade de conversar com algumas pessoas com quem trabalhei na AMD (Harry, Alex, Leo, Christian, Shashank e Pierre), muitos membros da Igalia (Žan, Job, Ricardo, Paulo, Tvrtko e muitos outros) e alguns desenvolvedores da Valve. Em particular, conheci o Tímur pessoalmente pela primeira vez, embora já estivéssemos conversando há meses sobre recuperação de GPU. Aliás, falando em recuperação de GPU, realizamos um workshop sobre esse tema juntos.
O workshop estava lotado de desenvolvedores de diferentes empresas, o que foi ótimo, pois adicionou diferentes perspectivas ao tema. Iniciamos nossa discussão focando no tópico de reenvio de tarefas (job resubmission). Christian começou compartilhando um breve histórico de como o driver AMDGPU passou a lidar com o reenvio e os problemas associados a tal tarefa. Após aprender com a experiência anterior, a AMDGPU acabou adotando a seguinte abordagem:
- Quando uma tarefa causar um engasgo no sistema (hang), chame o manipulador específico do driver para lidar com essa situação.
- Pare o escalonador.
- Copie todas as tarefas do buffer circular, exceto a tarefa que causou o problema, para um buffer circular temporário.
- Reinicie o buffer circular.
- Copie as outras tarefas de volta para o buffer circular.
- Retome o escalonador.
Abaixo, você pode ver uma série crucial associada à implementação de recuperação do amdgpu:
O próximo tópico foi uma discussão sobre a substituição do
drm_sched_resubmit_jobs(), visto que essa função foi descontinuada. Apenas
alguns drivers ainda a utilizam e precisam de uma alternativa. Surgiram algumas
ideias para extrair parte da implementação específica de alguns drivers e
transformá-la em uma função genérica. No dia seguinte, Philipp Stanner
continuou a discussão sobre esse tópico em seu workshop,
DRM GPU Scheduler.
Outro tópico crucial discutido foi a melhoria da capacidade de depuração do reset da GPU para identificar quais operações causam o travamento (lembrando que a recuperação da GPU é um paliativo, não a solução definitiva). Os desenvolvedores da Intel compartilharam sua estratégia para lidar com isso, obtendo dicas do espaço do usuário, o que os ajudou a fornecer um conjunto melhor de informações para adicionar ao devcoredump. A AMD poderia adotar essa prática, juntamente com o despejo dos dados do IB no devcoredump (já estou investigando isso).
Por fim, discutimos estratégias para evitar regressões devido a travamentos. Em resumo, temos duas linhas de defesa:
- IGT: No nível IGT, podemos ter mais testes que inserem instruções maliciosas no buffer circular, forçando o driver a um estado inválido e acionando o processo de recuperação.
- Conjunto de testes HangTest: O conjunto de testes HangTest é uma ferramenta que simula possíveis travamentos usando Vulkan. Alguns testes já estão disponíveis neste conjunto, mas devemos explorar combinações mais criativas para tentar provocar travamentos.
Este ano, como sempre, a XDC foi incrível, repleta de apresentações interessantes que recomendo a todos. Se tiver interesse, confira a agenda e as gravações das apresentações disponíveis no Canal do Youtube da X.Org Foundation. Enfim, espero que este post marque o início de uma nova era para este site, onde começarei a publicar mais conteúdo, desde atualizações a tutoriais. Até breve.
Articles from blogs I follow around the net
Status update, November 2025
Hi! This month a lot of new features have added to the Goguma mobile IRC client. Hubert Hirtz has implemented drafts so that unsent text gets saved and network disconnections don’t disrupt users typing a message. He also enabled replying to one’s own messages…
via emersion November 16, 2025Kworkflow at Kernel Recipes 2025
This was the first year I attended Kernel Recipes and I have nothing but say how much I enjoyed it and how grateful I’m for the opportunity to talk more about kworkflow to very experienced kernel developers. What I mostly like about Kernel Recipes is its inti…
via Wen.onweb November 3, 2025October/November Conference News
The last part of October brings us a whole pile of events, with many of them featuring talks by Igalians. After the month ends, we’re looking forward to a couple of events in November. Here’s where we’ll be presenting talks: RISC-V Summit North America, O…
via Igalia October 22, 2025Generated by openring
