Jak mogę debugować częste nieodwracalne zawieszenia?

9

Mój nowy XPS 13 (9360 z procesorem KabyLake) z preinstalowanym Ubuntu 16.04 często zawiesza się całkowicie bez wyraźnego powodu.

Zawieszenia występują pozornie przypadkowo. Czasami wskaźnik myszy można nadal przesuwać przez kilka sekund, ale ostatecznie system całkowicie się blokuje. Nie mogę przejść na wirtualne terminale i nawet kody SysRq nie wydają się mieć żadnego efektu. Wszystko, co mogę zrobić, to nacisnąć długo przycisk zasilania, aby wyłączyć zasilanie, po czym system uruchomi się normalnie.

Działające procesy użytkownika to w większości kilka kart Chrome i terminal.

Rzeczy, które sprawdziłem i wypróbowałem, obejmują:

Po wykonaniu tej czynności zawiesza się nadal. Teraz jestem zagubiony. Moje pytanie brzmi zatem:

Jakie są sposoby znalezienia przyczyny problemu?

justfortherec
źródło
To brzmi jak błąd cstate, który istniał w procesorach Bay-Trail. Myślę, że warto spróbować również naprawić. Uruchom ponownie komputer, dopóki nie zobaczysz grubopcji rozruchu. Kliknij, eaby wyświetlić opcje wiersza polecenia. Następnie dodaj intel_idle.max_cstate=1bezpośrednio po słowach quiet splashi uruchom. Sprawdź, czy to działa. Może być konieczne zgłoszenie błędu w Launchpad. Jakiego jądra używasz?
negusp
@PatrickNegus To jest z jądrem 4.4.0-47-generic. Istnieje opcja BIOS umożliwiająca wyłączenie stanów C. Czy to zasadniczo robi to samo? Spróbuję edytować wiersz poleceń. Przez „błąd cstate, który istniał w Bay-Trail CPU” masz na myśli błąd jądra lub błąd sprzętowy? Czy warto wypróbować nowsze jądra głównego?
justfortherec,
Jądro 4.8 ma znacznie lepsze wsparcie dla Kaby Lake niż 4.4. Tak, proszę zaktualizować. Jeśli chodzi o błąd Bay-Trail, był i nadal jest błędem jądra, który uniemożliwia Ubuntu skuteczne zarządzanie stanami uśpienia procesora (co oszczędza energię procesora i zapewnia znacznie lepszą wydajność bezczynności).
negusp
Dziękuję za pomoc, @PatrickNegus. Aby zweryfikować, czy mamy na myśli to samo. Masz na myśli aktualizację do jądra 16.10, jak opisano w askubuntu.com/a/840184/63018 ?
justfortherec
Tak właśnie miałem na myśli.
negusp

Odpowiedzi:

4

Wyłącz intel_cstates(stany oszczędzania energii mające na celu zmniejszenie strat ciepła i zużycia energii przez procesor) poprzez edycję /etc/default/grub:

sudo nano /etc/default/grub

Znajdź wiersz zawierający GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Dodaj intel_idle.max_cstate=1bezpośrednio następujące splash.

Alternatywnie, jeśli twój BIOS to obsługuje, wyłącz wspomniane stany C.

Uwaga: nie jest to długoterminowa poprawka. Wyłączenie stanów C znacznie zwiększa pobór mocy i marnuje ciepło. Spróbuj tego tylko wtedy, gdy nie ma innych rozwiązań, a aktualizacja jądra niczego nie rozwiąże!

negusp
źródło
dlaczego dokładnie miałoby to pomóc?
Korijn
@Korijn ... minęło trochę czasu, ale wystąpił (lub prawdopodobnie rozwiązany) błąd w procesorach Intel Bay Trail, w którym występuje znaczna niestabilność w systemie, gdy włączone są stany oszczędzania energii. Wyłączenie stanów c naprawia błąd.
negusp
3

Jak zainstalować jądro 4.8.5

Mimo że 4.8.7 jest najnowszym jądrem, w tym 500-postowym, trwającym 1 rok dzienniku błędów ( błąd 109051 - intel_idle.max_cstate = 1 wymagany na baytrail, aby zapobiec awariom ), zgłasza się, że nie działa. Wczoraj ktoś napisał, że spróbował 4.8.7, to się zawiesiło, więc wrócili do 4.8.6.

Chociaż tytuł dziennika błędów dotyczy „Bay Trail”, przedstawione rozwiązania mają zastosowanie do innych platform Intela, jak zgłaszają użytkownicy. Ponieważ istnieje prawie 582 posty obejmujące prawie rok, polecam nacisnąć Endklawisz po otwarciu linku i przewinąć w górę.

Od kilku tygodni korzystam z wersji 4.8.5 i od nowa wraz z wersją 4.4.0-47 i czuję się komfortowo, używając jednego z nich. Oto instrukcje instalacji jądra w wersji 4.8.5:

cd /tmp
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805_4.8.5-040805.201610280434_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-image-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
sudo dpkg -i *.deb
sudo reboot

Możesz zainstalować dowolne jądro, odwiedzając stronę: ( http://kernel.ubuntu.com/~kernel-ppa/mainline/ ) i dostosowując tam linki do powyższych instrukcji.

WinEunuuchs2Unix
źródło
Dzięki za informację. Nie zaakceptuję go jednak jako odpowiedzi na ten temat, ponieważ dotyczy on pytania, które podniosłem w komentarzu, a nie pierwotnego pytania tego wątku.
justfortherec
W rzeczy samej. Daj mi znać, jeśli spróbujesz nowego jądra i jeśli to działa.
WinEunuuchs2Unix
2
Mój system zatrzymał się losowo po aktualizacji do dowolnego jądra 4.8, którego próbowałem (LTS 4.8.0-25.27~16.04.1i mainline 4.8.12-040812.201612020431).
justfortherec