Jak mogę ustawić Intel Idle Max Cstate na 1 i jak mogę sprawdzić, kiedy to zrobi. mam problem z zamrażaniem z powodu rdzeni zatoki.
Próbowałem jądra 4.5 4.1.12 4.4, ale problem z zawieszaniem się nadal trwa. w tej chwili 4.4 jest moją wersją jądra.
Jak mogę ustawić Intel Idle Max Cstate na 1 i jak mogę sprawdzić, kiedy to zrobi. mam problem z zamrażaniem z powodu rdzeni zatoki.
Próbowałem jądra 4.5 4.1.12 4.4, ale problem z zawieszaniem się nadal trwa. w tej chwili 4.4 jest moją wersją jądra.
Odpowiedzi:
Jeśli używasz GRUB:
Za pomocą sudo
, edytuj /etc/default/grub
i edytuj GRUB_CMDLINE_LINUX_DEFAULT
linię dodając intel_idle.max_cstate=1
do wszystkiego, co może już tam być. Po zapisaniu uruchom plik sudo update-grub
, a następnie uruchom ponownie. Sugeruje się, aby najpierw zapisać kopię oryginalnego pliku grub.
Aby sprawdzić, czy twój stan nie schodzi głębiej niż 1, użyj turbostatu (pakiet: linux-tools-common).
Przykład (gdzie jest już coś na GRUB_CMDLINE_LINUX_DEFAULT
):
Przed (edytowane):
$ sudo turbostat -S --debug sleep 10
Avg_MHz %Busy Bzy_MHz TSC_MHz SMI CPU%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 PkgWatt CorWatt GFXWatt
1 0.04 1654 3411 0 0.12 0.03 99.82 0.00 29 29 0.07 0.03 99.51 3.85 0.20 0.23
10.001629 sec
Wprowadź zmiany (używając mojej metody do kontroli konfiguracji):
~/config/etc/default$ cp /etc/default/grub ./
~/config/etc/default$ cp grub grub.original
~/config/etc/default$ nano grub
Zmień to:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
Do tego:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 intel_idle.max_cstate=1"
I aktualizacja:
~/config/etc/default$ sudo cp grub /etc/default
~/config/etc/default$ sudo update-grub
~/config/etc/default$ sudo reboot -r now
Teraz sprawdź (edytowano):
$ sudo turbostat -S --debug sleep 10
Avg_MHz %Busy Bzy_MHz TSC_MHz SMI CPU%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 PkgWatt CorWatt GFXWatt
0 0.02 1920 3411 0 99.98 0.00 0.00 0.00 39 39 0.00 0.00 0.00 10.49 6.66 0.23
10.001079 sec
Powinieneś również zobaczyć te wiadomości w ( dmesg
i var/log/kern.log
edytowane):
~$ dmesg | grep intel_idle
[ 1.019709] intel_idle: max_cstate 1 reached
$ grep intel_idle /var/log/kern.log
Mar 23 08:10:32 s15 kernel: [ 1.019709] intel_idle: max_cstate 1 reached
turbostat
jest pokazanie, że stan nie idzie głębiej niż 1. Co masz na myśli deeper
? Co robić inaczej, jeśli idzie głębiej?
intel_idle.max_cstate=1
w grub jak GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"
z aktualizacją grub sudo update-grub
i ponownie uruchomiłem maszynę. Nie występują już żadne twarde restarty. Cieszę się, że rozwiązałem problem. Zastanawiam się, co dokładnie ta właściwość mówi procesorowi.
Po tych samych problemach z zawieszaniem się w systemie Linux i moim asrocku Q2900 znalazłem na niemieckiej stronie IT rozwiązanie / obejście dostarczone przez firmę Intel. ( https://www.golem.de/news/intel-einfrieren-bei-intels-bay-trail-socs-durch-patch-abgefedert-1609-123546.html ) Istnieje ogólny problem z Bay-Trail-SoCs od Intela. Link do łatki: https://bugzilla.kernel.org/attachment.cgi?id=223851
Dalsze informacje: Ten patch / skrypt uzyskuje tryb oszczędzania energii. Powyższe rozwiązanie tematyczne w ogóle usuwa ten tryb.
Nie ma już potrzeby aktualizowania gruba, jeśli przejdziesz na najnowsze jądro.
Zgodnie z komentarzem # 1013 w zgłoszeniu błędu jest teraz naprawiony:
Dawno nie sprawdzałem tego wątku, ale pomyślałem, że powinienem opublikować swoje odkrycia, na wypadek, gdyby były przydatne dla kogokolwiek.
Komputer z niższej półki napędzany procesorem Intel N2807, który nigdy nie działał więcej niż 30 minut bez awarii, gdy nie ustawiłem ... max_cstates = 1 teraz działa doskonale dobrze z podstawowym jądrem wer. 5.3.1 lub 4.19.75. Uruchomiłem go przez kilka dni z każdą wersją bez żadnych problemów. Średnie zużycie energii również spadło o nieco ponad 10%.
Naprawienie błędu zajęło około czterech lat, po raz pierwszy zgłoszono 8 grudnia 2015 r.