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.