Una serie di patch al driver del kernel AMDGPU Linux e al driver RADV Vulkan di Mesa consentirebbe di trasmettere più facilmente informazioni sui motivi per cui si verifica un blocco/ripristino della GPU in modo che il software dello spazio utente possa essere più informato su eventuali problemi.
André Almeida della società di consulenza Igalia, che collabora con Valve e altre parti, ha inviato queste bozze di patch per introdurre una nuova informazione ioctl”colpevole”per la comunicazione di informazioni sugli eventi di blocco/ripristino della GPU. Questa serie di patch propone l’ioctl AMDGPU_INFO_GUILTY_APP per comunicare informazioni sul motivo per cui si è verificato un ripristino della GPU con le relative risorse che hanno indotto il blocco della GPU.
Nello spazio utente c’è questa richiesta di unione Mesa per aver implementato”get_guilty_info()”all’interno del driver Mesa Radeon Vulkan RADV. Almeida ha commentato in quel MR:
L’obiettivo di questa bozza è raccogliere feedback sull’interfaccia DRM proposta e sulle informazioni scaricate. Come affermato nella descrizione del commit, l’obiettivo è rendere più facile per gli sviluppatori Mesa capire perché la GPU si è arrestata in modo anomalo con meno overhead, quindi Mesa eseguirà umr-di [[email protected]]address length sull’esatto IB che ha causato il appendere se l’app è quella colpevole.
…
Attualmente, quando un’app va in crash su Mesa non ci sono molte informazioni disponibili per la segnalazione del bug. Gli utenti possono eseguire l’app con RADV_DEBUG=hang nella speranza di ottenere maggiori informazioni, ma questa opzione ha un sovraccarico e le informazioni scaricate non hanno molto contesto, rendendo il debug difficile come trovare un ago in un pagliaio.Per risolvere entrambi i problemi, introdurre una nuova funzione di query per chiedere informazioni al kernel quando si verifica un blocco da parte dell’app colpevole. Ciò significa che le app innocenti non avranno spese generali e ora possiamo scaricare solo il buffer indiretto colpevole, rendendo più facile per gli sviluppatori trovare l’istruzione offensiva che ha bloccato la GPU.
L’unica informazione disponibile finora è l’IB indirizzo, la sua dimensione e l’ID della VM.
Vedremo dove porta questo lavoro per aiutare a rintracciare i colpevoli di blocchi/ripristini della GPU AMD Radeon sotto Linux.