Esiste un modo semplice e sicuro per attivare un blocco GPU su un computer sensibile?


8

Risposte alla mia domanda precedente, Ubuntu 12.04 si è bloccato, richiedendo powercycle. Cosa devo cercare / grep nei registri? , mi hanno portato a sospettare che il mio computer stia riscontrando un blocco intermittente della GPU. Sta succedendo circa una volta alla settimana, di solito quando sto usando Chrome. Oggi è successo quando stavo creando un diagramma su lucidchart

Ho un Dell Optiplex 755 con un ATI Radeon HD 2400 XT e due monitor in esecuzione in modalità Xinerama. Sto usando 12.04 con il driver ATI proprietario installato.

Quando il computer si blocca, posso ancora accedere. E vorrei seguire le istruzioni per la segnalazione fornite su https://wiki.ubuntu.com/X/Tro troubleshooting/Freeze

Esiste un modo (sicuro) per causare un blocco della GPU in modo che io possa andare avanti e presentare un bug, piuttosto che aspettare fino a quando non si ripete?

Risposte:


11

Ottima domanda

I carichi di lavoro

La directory / usr / share / xdiagnose / workloads ha una serie di carichi di lavoro progettati per esercitare il sistema grafico per attivare i blocchi.

$ ls /usr/share/xdiagnose/workloads/
README                       do_monitor_rotation_loop
do_chws_loop*                do_screensaver_loop*
do_cpu_spin_loop             do_video_loop*
do_disk_write_loop           do_vtswitch_loop*
do_glx_loop*                 repro.sh
do_kernel_compile_loop       run_workloads
do_monitor_disable_loop*     youtube-loop.html
do_monitor_resolution_loop*  youtube-reload.html

Nota che per eseguirli devi passare "run". Per esempio:

$ do_glx_loop eseguito

In assenza di argomenti, gli script visualizzeranno l'utilizzo. In parte è per sicurezza (nel caso in cui le persone eseguano gli script alla cieca), ma soprattutto serve a mantenere in ordine l'API degli script.

Quelli che ho interpretato sono probabilmente i migliori con cui iniziare. Vorrei iniziare eseguendo solo uno script alla volta e lasciarlo andare alcune ore. Se il tuo sistema sopravvive abbastanza bene, prova a eseguirne due o più contemporaneamente.

Nota che non li ho testati molto pesantemente, quindi non posso promettere che sono privi di bug. Ma sono script abbastanza brevi e semplici, quindi si spera che siano facili da sistemare e anche le patch sono molto apprezzate.

Inoltre, è molto probabile che possano innescare blocchi indipendenti da quello che stai cercando di risolvere. I blocchi della GPU sembrano generalmente identici all'occhio non allenato poiché hanno gli stessi identici sintomi, più o meno.

logs

Se usi Intel Graphics, c'è un / sys / kernel / debug / dri / 0 / i915_error_state che desideri. Questa è un'istantanea dello stato del registro al momento del blocco e la parte superiore contiene alcuni codici di errore. IPEHR, PGTBL_ER, ESR, EIR. Abbina quei codici per vedere se hai lo stesso errore o simile.

Se non sei su Intel Graphics (come in questo caso non lo sei), o se non vedi i file i915_error_state generati, allora dmesg e /var/log/kern.log sono cosa guardare. A volte con i blocchi di gpu indicheranno che cosa è stato causato o dentro il blocco della GPU.

Il driver open source -ati ha radeontool e avivotool, che acquisiscono gli stati del registro. Questi sono principalmente per opensati -ati, ma gli strumenti dovrebbero funzionare anche con -fglrx. Non l'ho mai visto richiesto per un bug -fglrx, ma certamente non può far male.

analisi

Per tutti i driver, il passaggio successivo è in genere iniziare a testare le versioni più recenti o precedenti del driver. Per i driver proprietari, è possibile controllare il ppa x-updates ma probabilmente sarà necessario scaricare e installare manualmente il driver dal sito Web del fornitore (e confondere la confezione del sistema in tal modo). Per i driver FOSS come -intel, -nouveau, -ati ciò significa testare kernel nuovi o mesa più recenti. Forniamo build di pacchetti di kernel più recenti su http://kernel.ubuntu.com/~kernel-ppa/mainline/ . Per mesa, ci sono vari PPA come xorg-edger. Sono anche in procinto di preparare un aggiornamento 8.0.3 per preciso, che crediamo risolva una serie di blocchi per Intel Graphics.

In ogni caso, non fermarti quando trovi una versione che funziona. Prova altre versioni tra la tua versione funzionante e quella interrotta. Se riesci a restringere la parentesi a due versioni adiacenti, ciò può essere estremamente utile per gli sviluppatori nell'isolare quale patch ha causato la regressione.

contribuire

Durante la risoluzione dei problemi, è possibile individuare errori o trovare miglioramenti per gli script o i documenti. I contributi a ciascuno di questi sono accolti calorosamente. Con i documenti wiki, vai avanti e modifica! Cerco di aggiornarli almeno una volta all'anno, ma non sempre ci riesco, e il prossimo che visiterà la pagina apprezzerà sicuramente i tuoi sforzi per migliorarli.

Per le modifiche agli script stessi, anche abbastanza accolto. Inviami le modifiche comunque ti senti a tuo agio - come patch, un ramo bzr o git, o anche solo copie dello script. Se si prevede di apportare molte modifiche, un ramo bzr con una proposta di unione è il modo preferito; tutorial su come farlo sono disponibili su code.launchpad.net, oppure sentiti libero di prendermi su IRC se hai domande.

Oppure, se non sei pronto per scavare nel codice ma desideri segnalare errori o aree in cui sono necessarie più funzionalità, puoi presentare segnalazioni di bug nel solito modo ( ubuntu-bug xdiagnose).

Soluzioni veloci

Se non sei interessato a eseguire il debug di cui sopra, ecco alcuni suggerimenti casuali:

Per i driver proprietari, prova a disinstallarli e eliminarli completamente dal tuo sistema, quindi reinstallali da zero. Questo purtroppo "risolve" molti bug ...

Per i driver FOSS, ci sono vari switch del kernel con cui puoi giocare. Per i bug 3D / mesa, c'è anche driconf per modificare varie impostazioni.

Finalmente

Infine, una richiesta ... ti preghiamo di non inviare segnalazioni di bug a Launchpad su "blocchi casuali" fino a quando non avrai fatto almeno un po 'di svaghi come descritto sopra. Altrimenti, aggiungeresti solo al rumore.

Cerchiamo di pescare segnalazioni di bug ben studiate; troviamo questi per dare un botto più alto per il dollaro, e sono molto più propensi a finire con una soluzione reale per la distribuzione.


Grazie per le tue risposte. Sei l'autore del wiki di blocco della risoluzione dei problemi collegato ? Sembra che gli script xdiagnose / workloads debbano essere citati lì - Modificherei ma non sono sicuro che lo farei bene come te. Inoltre, non menzionate l'uso di radeontool qui, ma è menzionato nel wiki. Dovrei ancora usare radeontool nel mio caso?
Abe,

inoltre, sarebbe utile uno script che eseguiva tutti gli script in xdiagnose / workloads, iniziando in sequenza con quelli che avevi asterestato? Infine, dove posso imparare come inviare le modifiche?
Abe,

Ecco il primo bug che ho trovato (credo): do_chws_loop e do_glx_loop richiede wmctrl, do_glx_loop richiede glxgears, ma nessuno dei due script "include funzionalità per testare e installare ciò di cui ha bisogno". come descritto in README. Probabilmente potrei iniziare ad aggiungere tale funzionalità, ma devo prima inviare un bug e poi risolverlo? E va bene se mi ci vogliono cinque righe di se ... altro ...? O c'è un "modo preferito" ... e questo significa che gli script dovrebbero essere eseguiti come root? ... perché richiedere un argomento "run"? Ci scusiamo per tutte le domande, voglio solo essere in grado di aiutarti se posso.
Abe,

Certo, nessun problema, aggiornerò la mia risposta per coprire quei punti.
Bryce,

Per quanto riguarda la terza serie di domande. Sì, avere il test degli script per ciò di cui hanno bisogno è stato nel mio elenco TODO. se ... altri blocchi sono sicuramente un buon punto di partenza. In definitiva, vorrei poter consentire agli utenti di eseguire gli script da una GUI, quindi vorrei che "comunicassero" i loro requisiti alla GUI in modo che possano disattivarli se l'utente non ha i requisiti. Ma sono ben lungi dall'essere in grado di farlo, quindi solo semplici controlli per la riga di comando sono il posto giusto per iniziare.
Bryce,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.