FERRAMENTAS LINUX: A API "Guilty " é proposta para uma melhor comunicação por que as GPUs Radeon travam/reiniciam

quarta-feira, 3 de maio de 2023

A API "Guilty " é proposta para uma melhor comunicação por que as GPUs Radeon travam/reiniciam

 


Um conjunto de patches para o driver do kernel Linux AMDGPU e o driver RADV Vulkan da Mesa permitiria retransmitir informações com mais facilidade sobre os motivos pelos quais ocorre um travamento/reinicialização da GPU, para que o software do espaço do usuário possa ser mais informado sobre quaisquer problemas.

André Almeida, da empresa de consultoria Igalia, que trabalha com a Valve e outras partes, enviou esses rascunhos de patches para introduzir uma nova informação ioctl "guilty" para comunicar as informações sobre os eventos de suspensão/reinicialização da GPU. Esta série de patches propõe o ioctl AMDGPU_INFO_GUILTY_APP para comunicar informações sobre por que ocorreu uma redefinição de GPU com os recursos relacionados que induziram o travamento da GPU.

No espaço do usuário, há essa solicitação de mesclagem do Mesa para implementar "get_guilty_info ()" no driver Mesa Radeon Vulkan RADV. Almeida comentou naquele RM:

O objetivo deste rascunho é coletar feedback sobre a interface DRM proposta e as informações despejadas. Conforme declarado na descrição do commit, o objetivo é tornar mais fácil para os desenvolvedores do Mesa descobrir por que a GPU travou com menos sobrecarga, então o Mesa executará umr -di [ vmid@ ]address length no IB exato que causou o travamento se é  o app guilty.

...

Atualmente, quando um aplicativo falha no Mesa, não há muitas informações disponíveis para o relatório de bug. Os usuários podem executar o aplicativo com RADV_DEBUG=hang na esperança de obter mais informações, mas essa opção tem alguma sobrecarga e as informações despejadas não têm muito contexto, tornando a depuração tão difícil quanto encontrar uma agulha no palheiro.

Para resolver ambos os problemas, introduza uma nova função de consulta para solicitar informações do kernel quando ocorrer um travamento do aplicativo culpado. Isso significa que aplicativos inocentes não terão sobrecarga e agora podemos despejar apenas o buffer indireto culpado, tornando mais fácil para os desenvolvedores encontrar a instrução ofensiva que travou a GPU.

A única informação disponível até agora é o endereço IB, seu tamanho e o ID da VM.

Veremos aonde esse trabalho nos leva para ajudar a rastrear os culpados pelos travamentos/reinicializações da GPU AMD Radeon no Linux.





Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário