XDC 2025

17 Nov 2025

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:

  1. Quando uma tarefa causar um engasgo no sistema (hang), chame o manipulador específico do driver para lidar com essa situação.
  2. Pare o escalonador.
  3. Copie todas as tarefas do buffer circular, exceto a tarefa que causou o problema, para um buffer circular temporário.
  4. Reinicie o buffer circular.
  5. Copie as outras tarefas de volta para o buffer circular.
  6. 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.
Lighting talk

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, 2025

Kworkflow 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, 2025

October/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, 2025

Generated by openring