Pertanyaan yang sangat bagus
Beban kerja
Direktori / usr / share / xdiagnose / workloads memiliki serangkaian beban kerja yang dirancang untuk menjalankan sistem grafis Anda untuk memicu penguncian.
$ 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
Perhatikan bahwa untuk menjalankannya Anda harus melewati 'jalankan'. Misalnya:
$ do_glx_loop dijalankan
Tanpa argumen, skrip akan menampilkan penggunaan. Sebagian itu untuk keamanan (kalau-kalau orang hanya menjalankan skrip secara membabi buta), tetapi sebagian besar untuk menjaga agar skrip tetap rapi.
Yang saya bintangi mungkin yang terbaik untuk memulai. Saya akan mulai dengan menjalankan hanya satu skrip sekaligus dan membiarkannya berjalan beberapa jam. Jika sistem Anda bertahan cukup baik, maka coba jalankan dua atau lebih secara bersamaan.
Catatan saya sendiri belum menguji ini dengan sangat berat, jadi saya tidak bisa menjanjikan mereka bebas bug. Tapi itu skrip yang cukup pendek dan sederhana sehingga mudah-mudahan mudah diperbaiki, dan tambalan yang baik sangat disambut.
Perhatikan juga bahwa mereka kemungkinan besar dapat memicu penguncian yang tidak terkait dengan yang sedang Anda coba pecahkan. Semua penguncian GPU umumnya terlihat identik dengan mata yang tidak terlatih karena memiliki gejala yang sama persis, kurang lebih.
Log
Jika Anda menggunakan Intel Graphics, ada / sys / kernel / debug / dri / 0 / i915_error_state yang Anda inginkan. Ini adalah snapshot dari status register pada saat hang, dan bagian atasnya berisi beberapa kode kesalahan. IPEHR, PGTBL_ER, ESR, EIR. Cocokkan kode-kode itu untuk mengetahui apakah Anda memiliki kesalahan yang sama atau serupa.
Jika Anda tidak menggunakan Intel Graphics (seperti dalam kasus ini Anda tidak), atau jika Anda tidak melihat file i915_error_state dihasilkan, maka dmesg dan /var/log/kern.log adalah apa yang harus dilihat. Terkadang dengan penguncian gpu, mereka akan menunjukkan apa yang diakibatkan oleh atau dalam penguncian GPU.
Driver open source -ati memiliki radeontool dan avivotool, yang menangkap status register. Ini utamanya untuk opensource -ati, tetapi alat-alatnya juga harus bekerja dengan -fglrx. Saya belum pernah melihatnya meminta bug -fglrx, tetapi tentu saja tidak ada salahnya.
Pengujian
Untuk semua driver, langkah selanjutnya biasanya mulai menguji versi driver yang lebih baru atau lebih lama. Untuk driver berpemilik, Anda dapat memeriksa ppa pembaruan x tetapi mungkin Anda harus mengunduh dan menginstal driver secara manual dari situs web vendor (dan mengacaukan kemasan sistem Anda dengan melakukan hal itu). Untuk driver FOSS seperti -intel, -nouveau, -ati yang berarti menguji kernel yang lebih baru atau mesa yang lebih baru. Kami menyediakan paket kernel baru di http://kernel.ubuntu.com/~kernel-ppa/mainline/ . Untuk mesa, ada berbagai AKP seperti xorg-edgers. Saya juga sedang dalam proses mempersiapkan pembaruan 8.0.3 untuk tepat, yang kami percaya memperbaiki sejumlah penguncian untuk Intel Graphics.
Bagaimanapun, jangan berhenti ketika Anda menemukan versi yang berfungsi. Coba versi lain di antara versi kerja Anda dan yang rusak. Jika Anda dapat mempersempit braket ke dua versi yang berdekatan, itu bisa sangat membantu bagi pengembang dalam mengisolasi apa patch yang menyebabkan regresi.
Berkontribusi
Saat Anda menjalani pemecahan masalah, Anda mungkin menemukan kesalahan, atau mungkin muncul dengan perbaikan untuk skrip atau dokumen. Kontribusi untuk semua ini disambut dengan hangat. Dengan dokumen wiki, silakan lakukan saja dan edit! Saya mencoba memperbarui mereka setidaknya setahun sekali, tetapi saya tidak selalu menyadarinya, dan orang berikutnya yang mengunjungi halaman tersebut pasti akan menghargai upaya Anda untuk memperbaikinya.
Untuk perubahan pada skrip sendiri, juga cukup disambut. Kirimi saya perubahan namun Anda merasa nyaman - sebagai tambalan, cabang bzr atau git, atau bahkan hanya salinan skrip. Jika Anda berencana untuk melakukan banyak perubahan, cabang bzr dengan proposal penggabungan adalah cara yang disukai; tutorial tentang cara melakukan ini tersedia di code.launchpad.net, atau jangan ragu untuk menangkap saya di IRC jika Anda memiliki pertanyaan.
Atau, jika Anda tidak siap untuk menggali ke dalam pengkodean tetapi ingin menandai kesalahan atau area di mana lebih banyak fungsi diperlukan, Anda dapat mengajukan laporan bug dengan cara biasa ( ubuntu-bug xdiagnose
).
Perbaikan Cepat
Jika Anda tidak tertarik melakukan debugging di atas, berikut ini beberapa tips acak:
Untuk driver berpemilik, cobalah mencopot dan membersihkannya sepenuhnya dari sistem Anda, lalu instal ulang dari awal. Sayangnya ini "memecahkan" banyak bug ...
Untuk driver FOSS, ada berbagai sakelar kernel yang dapat Anda mainkan. Untuk bug 3D / mesa, ada juga driconf untuk mengubah berbagai pengaturan.
Akhirnya
Akhirnya, satu permintaan ... tolong jangan mengajukan laporan bug ke Launchpad tentang "pembekuan acak" sampai Anda telah melakukan setidaknya sedikit sleuthing seperti yang dijelaskan di atas. Kalau tidak, Anda hanya akan menambah kebisingan.
Kami mencoba mencari laporan bug yang diteliti dengan baik; kami menemukan ini untuk memberikan yang lebih tinggi untuk uang, dan jauh lebih mungkin berakhir dengan perbaikan yang sebenarnya untuk distro.