Un ensemble de correctifs pour le pilote du noyau AMDGPU Linux et le pilote RADV Vulkan de Mesa permettrait de relayer plus facilement des informations sur les raisons pour lesquelles un blocage/réinitialisation du GPU se produit afin que le logiciel de l’espace utilisateur puisse être mieux informé de tout problème.
André Almeida du cabinet de conseil Igalia, qui travaille avec Valve et d’autres parties, a envoyé ces brouillons de correctifs pour introduire une nouvelle information ioctl”coupable”pour communiquer des informations sur les événements de blocage/réinitialisation du GPU. Cette série de correctifs propose l’ioctl AMDGPU_INFO_GUILTY_APP pour communiquer des informations sur la raison pour laquelle une réinitialisation du GPU s’est produite avec les ressources associées qui ont provoqué le blocage du GPU.
Dans l’espace utilisateur, il y a cette demande de fusion Mesa pour implémenter”get_guilty_info()”dans le pilote Mesa Radeon Vulkan RADV. Almeida a commenté dans ce MR :
Le but de ce brouillon est de recueillir des commentaires sur l’interface DRM proposée et les informations déversées. Comme indiqué dans la description du commit, l’objectif est de permettre aux développeurs Mesa de comprendre plus facilement pourquoi le GPU s’est écrasé avec moins de surcharge, donc Mesa exécutera umr-di [[email protected]]address length sur l’IB exact qui a causé le pendre si l’application est la coupable.
…
Actuellement, lorsqu’une application plante sur Mesa, il n’y a pas beaucoup d’informations disponibles pour le rapport de bogue. Les utilisateurs peuvent exécuter l’application avec RADV_DEBUG=hang dans l’espoir d’obtenir plus d’informations, mais cette option a une surcharge et les informations déversées n’ont pas beaucoup de contexte, ce qui rend le débogage aussi difficile que de trouver une aiguille dans une botte de foin.Pour résoudre les deux problèmes, introduisez une nouvelle fonction de requête pour demander des informations sur le noyau lorsqu’un blocage se produit par l’application coupable. Cela signifie que les applications innocentes n’auront pas de frais généraux et que nous pouvons désormais vider uniquement le tampon indirect coupable, ce qui permet aux développeurs de trouver plus facilement l’instruction incriminée qui a bloqué le GPU.
La seule information disponible à ce jour est l’IB adresse, sa taille et l’identifiant de la machine virtuelle.
Nous verrons où mène ce travail pour aider à retrouver les coupables des blocages/réinitialisations du GPU AMD Radeon sous Linux.