Czy istnieje prosty, bezpieczny sposób na uruchomienie blokady GPU na podatnym komputerze?


8

Odpowiedzi na moje poprzednie pytanie, Ubuntu 12.04 zastygł, wymagając zasilania. Czego powinienem szukać / grep w logach? , doprowadziło mnie do podejrzenia, że ​​na moim komputerze występuje przerywana blokada GPU. Dzieje się to mniej więcej raz w tygodniu, zwykle gdy używam Chrome. Dzisiaj stało się, kiedy tworzyłem schemat na lucidchart

Mam Dell Optiplex 755 z ATI Radeon HD 2400 XT i podwójnymi monitorami działającymi w trybie Xinerama. Używam 12.04 z zainstalowanym zastrzeżonym sterownikiem ATI.

Gdy komputer się blokuje, nadal mogę ssh. I chciałbym postępować zgodnie z instrukcjami dotyczącymi zgłaszania tego, dostępnymi na https://wiki.ubuntu.com/X/Troublesh/Freeze

Czy istnieje (bezpieczny) sposób, aby spowodować blokadę procesora graficznego, abym mógł zgłosić błąd i zamiast czekać, aż to się powtórzy?

Odpowiedzi:


11

Doskonałe pytanie.

Obciążenia

Katalog / usr / share / xdiagnose / workloads zawiera zestaw obciążeń zaprojektowanych do ćwiczenia systemu graficznego w celu wyzwalania blokowania.

$ 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

Pamiętaj, że aby je uruchomić, musisz przejść „bieg”. Na przykład:

$ do_glx_loop run

Bez argumentów skrypty wyświetlą użycie. Częściowo jest to związane z bezpieczeństwem (w przypadku, gdy ludzie po prostu uruchamiają skrypty na ślepo), ale przede wszystkim ma to na celu utrzymanie interfejsu API skryptów w porządku.

Te, które oznaczyłem gwiazdą, są prawdopodobnie najlepszymi na początek. Zacząłem od uruchomienia tylko jednego skryptu na raz i pozostawienie go na kilka godzin. Jeśli twój system przetrwa wystarczająco dobrze, spróbuj uruchomić dwa lub więcej jednocześnie.

Uwaga: Nie testowałem tych super bardzo osobiście, więc nie mogę obiecać, że są wolne od błędów. Są to jednak krótkie i proste skrypty, więc mam nadzieję, że łatwo je naprawić, a łatki są bardzo mile widziane.

Pamiętaj też, że mogą one powodować blokady niezwiązane z tą, którą próbujesz rozwiązać. Blokady GPU ogólnie wyglądają identycznie jak niewytrenowane oko, ponieważ mają dokładnie takie same objawy, mniej więcej.

Kłody

Jeśli korzystasz z karty graficznej Intel, istnieje żądany stan / sys / kernel / debug / dri / 0 / i915_error_state. Jest to migawka stanu rejestru w momencie zawieszenia, a jego górna część zawiera niektóre kody błędów. IPEHR, PGTBL_ER, ESR, EIR. Dopasuj te kody, aby sprawdzić, czy występuje ten sam lub podobny błąd.

Jeśli nie korzystasz z grafiki Intel (tak jak w tym przypadku, nie masz) lub jeśli nie widzisz wygenerowanych plików i915_error_state, to na co zwrócić uwagę dmesg i /var/log/kern.log. Czasami z blokadami GPU będą wskazywać, co spowodowało blokowanie GPU lub przez nie.

Sterownik open source -ati ma narzędzie radeontool i avivotool, które przechwytują stany rejestru. Są one przede wszystkim dla -ati opensource, ale narzędzia powinny również współpracować z -fglrx. Nigdy nie widziałem, aby zażądano błędu -fglrx, ale z pewnością nie zaszkodzi.

Testowanie

W przypadku wszystkich sterowników następnym krokiem jest zazwyczaj rozpoczęcie testowania nowszych lub starszych wersji sterownika. W przypadku sterowników zastrzeżonych możesz sprawdzić x-aktualizacje ppa, ale prawdopodobnie będziesz musiał pobrać i ręcznie zainstalować sterownik ze strony internetowej dostawcy (i przy tym popsuć opakowanie systemu). W przypadku sterowników FOSS, takich jak -intel, -nouveau, -ati, oznacza to testowanie nowszych jąder lub nowszych mesa. Zapewniamy spakowane wersje nowszych jąder na stronie http://kernel.ubuntu.com/~kernel-ppa/mainline/ . W przypadku mesa istnieją różne umowy PPA, takie jak xorg-edger. Jestem również w trakcie przygotowywania aktualizacji 8.0.3 do precyzyjnych, które naszym zdaniem naprawiają szereg blokad dla Intel Graphics.

W każdym razie nie przestawaj, gdy znajdziesz wersję, która działa. Wypróbuj inne wersje między wersją roboczą a wersją uszkodzoną. Jeśli możesz zawęzić zakres do dwóch sąsiednich wersji, może to być bardzo pomocne dla programistów w określeniu, która łatka spowodowała regresję.

Wnosząc wkład

Podczas rozwiązywania problemów możesz zauważyć błędy lub ulepszenia skryptów lub dokumentów. Wkład w którekolwiek z nich jest bardzo mile widziany. Z dokumentami wiki, proszę po prostu edytuj! Staram się je aktualizować przynajmniej raz w roku, ale nie zawsze sobie z tym radzę, a następny gość, który odwiedzi stronę, z pewnością doceni twój wysiłek w celu ich ulepszenia.

Również zmiany w samych skryptach są mile widziane. Wysyłaj mi zmiany, ale czujesz się komfortowo - jako łatki, gałąź bzr lub git, a nawet po prostu kopie skryptu. Jeśli planujesz wprowadzić wiele zmian, preferowanym sposobem jest gałąź bzr z propozycją scalenia; samouczki na temat tego, jak to zrobić, są dostępne na code.launchpad.net, lub możesz złapać mnie na IRC, jeśli masz pytania.

Lub, jeśli nie jesteś gotowy zagłębić się w kodowanie, ale chcesz oznaczyć błędy lub obszary, w których potrzebna jest większa funkcjonalność, możesz zgłaszać błędy w zwykły sposób ( ubuntu-bug xdiagnose).

Szybkie poprawki

Jeśli nie chcesz wykonywać żadnego z powyższych debugowania, oto kilka losowych wskazówek:

W przypadku zastrzeżonych sterowników spróbuj odinstalować je i całkowicie usunąć z systemu, a następnie zainstaluj ponownie od zera. To niestety „rozwiązuje” wiele błędów ...

W przypadku sterowników FOSS dostępne są różne przełączniki jądra, którymi można się bawić. W przypadku błędów 3D / mesa dostępny jest również program Driconf umożliwiający dostosowanie różnych ustawień.

Wreszcie

Na koniec jedna prośba ... nie przesyłaj raportów o błędach do Launchpada dotyczących „losowych zawieszeń”, dopóki nie wykonasz choćby odrobiny spóźnienia, takiego jak opisano powyżej. W przeciwnym razie po prostu zwiększałbyś hałas.

Próbujemy wyśledzić dobrze zbadane zgłoszenia błędów; uważamy, że dają one większy huk za grosze i są bardziej prawdopodobne, że skończą z faktyczną poprawką dla dystrybucji.


Dziękuję Ci za Twoje odpowiedzi. Czy jesteś autorem powiązanej zamrożonej wiki wiki ? Wydaje się, że należy wspomnieć o skryptach xdiagnose / workloads - edytowałbym, ale nie jestem pewien, czy zrobiłbym to tak dobrze, jak ty. Nie wspominasz też o użyciu radeontool, ale jest to wspomniane na wiki. Czy nadal powinienem używać narzędzia radeontool w moim przypadku?
— Abe

również, czy skrypt, który uruchamiałby wszystkie skrypty w xdiagnose / workloads, zaczynając od tych, które zostały oznaczone gwiazdką, byłby przydatny? Wreszcie, gdzie mogę dowiedzieć się, jak przesyłać zmiany?
— Abe

Oto pierwszy błąd, który znalazłem (myślę): do_chws_loop i do_glx_loop wymaga wmctrl, do_glx_loop wymaga glxgears, ale żaden skrypt „nie zawiera funkcji testowania i instalowania tego, czego potrzebuje”. jak opisano w README. Prawdopodobnie mógłbym zacząć dodawać taką funkcjonalność, ale czy najpierw muszę zgłosić błąd, a następnie go naprawić? I czy jest w porządku, jeśli zajmie mi to pięć linijek, jeśli ... inaczej ...? A może istnieje „preferowany sposób” ... i czy to oznacza, że ​​skrypty powinny być uruchamiane jako root? ... po co wymagać argumentu „uruchom”? Przepraszam za wszystkie pytania, chcę tylko móc pomóc, jeśli mogę.
— Abe

Jasne, nie ma problemu, zaktualizuję moją odpowiedź, aby uwzględnić te punkty.
— Bryce

Co do twojego trzeciego zestawu pytań. Tak, testowanie skryptów pod kątem tego, czego potrzebują, znajduje się na mojej liście TODO. jeśli ... inaczej bloki są z pewnością dobrym punktem wyjścia. Ostatecznie chciałbym umożliwić użytkownikom uruchamianie skryptów z GUI, więc chciałbym, aby „komunikowali” swoje wymagania z powrotem do GUI, aby mógł je wyszarzyć, jeśli użytkownik nie ma wymagań. Ale daleko mi do tego, aby to zrobić, więc proste sprawdzanie wiersza poleceń jest właściwym miejscem do rozpoczęcia.
— Bryce
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.