Como definir intel_idle.max_cstate = 1

12

Como posso definir o intel idle max cstate como 1 e como posso verificar quando isso será feito. Eu tenho um problema de congelamento por causa dos núcleos do bay trail.

Eu tentei o kernel 4.5 4.1.12 4.4, mas o problema de congelamento ainda continua. no momento 4.4 é a minha versão do kernel.

Ozan Temel
fonte
A partir de agora (8/2019), este encadeamento não indica realmente que definir o intel_idle.max_cstate = 1 é uma resolução oficial do bug publicado em 2011. Como no meu caso, é (tive que duplicar) um problema intermitente, antes de eu ADICIONAR intel_idle.max_cstate = 1 ao meu GRUB, eu gostaria de obter alguma documentação afirmando isso. O documento original do Bugzilla não é claro para esse efeito. Algum participante deste fórum pode me ajudar a verificar oficialmente essa “correção”?
Jan Hus

Respostas:

21

Se você estiver usando o GRUB:

Com sudo, edite /etc/default/grube edite a GRUB_CMDLINE_LINUX_DEFAULTlinha, adicionando intel_idle.max_cstate=1o que já estiver lá. Depois de salvar o arquivo executado sudo update-grub, reinicie. Sugira que você salve uma cópia do seu arquivo grub original primeiro.

Para verificar se o seu cstate não está indo mais além do que 1, use o turbostat (pacote: linux-tools-common).

Exemplo (onde já existe algo no GRUB_CMDLINE_LINUX_DEFAULT):

Antes (editado):

$ 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

Faça a alteração (usando meu método para controle de configuração):

~/config/etc/default$ cp /etc/default/grub ./
~/config/etc/default$ cp grub grub.original
~/config/etc/default$ nano grub

Mude isso:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"

Para isso:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 intel_idle.max_cstate=1"

E atualize:

~/config/etc/default$ sudo cp grub /etc/default
~/config/etc/default$ sudo update-grub
~/config/etc/default$ sudo reboot -r now

Agora verifique (editado):

$ 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

Você também deve ver essas mensagens em dmesge var/log/kern.log(editadas):

~$ 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
Doug Smythies
fonte
Gostaria de saber que valor, na saída de turbostat, está mostrando que o cstate não está indo mais fundo que 1. Como assim deeper? O que fazer de diferente se for mais profundo?
Stephane
1
@ Stephanie: Por "mais profundo", eu quis dizer estados c superiores a 1. Se você configurou a linha de comando do grub corretamente, ela não deve ir para o estado mais profundo (maior que) 1. Você pode observar a CPU e o pacote, estados maiores 1 mostra 0,00% de tempo nesses estados na linha de saída do turbostato.
Doug Smythies
1
Meu Thinkpad X201i estava reiniciando a cada hora. Ativei o intel_idle.max_cstate=1no grub como GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"com uma atualização do grub sudo update-grube reiniciei a máquina. Não há mais reinicializações rígidas. Estou feliz por ter resolvido meu problema. Gostaria de saber o que exatamente essa propriedade está dizendo à CPU. #
Stephane
Para sua informação, acompanho este relatório de erros há cerca de um ano e também pode lhe interessar: bugzilla.kernel.org/show_bug.cgi?id=109051 . Também aqui na AU: askubuntu.com/questions/803640/…
WinEunuuchs2Unix
3

Depois de ter os mesmos problemas de congelamento do Linux e do meu asrock Q2900, encontrei em um site de TI alemão a solução / solução alternativa fornecida pela Intel. ( https://www.golem.de/news/intel-einfrieren-bei-intels-bay-trail-socs-durch-patch-abgefedert-1609-123546.html ) Há um problema geral com os Bay-Trail-SoCs da Intel. O link para o patch: https://bugzilla.kernel.org/attachment.cgi?id=223851

Mais informações: Este patch / script obtém o modo de economia de energia. A solução de tópicos acima remove esse modo.

Helle
fonte
Bem-vindo ao Ask Ubuntu! Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer os links para referência.
Elder Geek
1

Edite / etc / defaults / grub:

GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=1"

Corre

update-grub
shutdown -r now
BSDguru
fonte
0

Não há mais necessidade de atualizar o grub se você alternar para o kernel mais recente.

De acordo com o comentário # 1013 no relatório de erros , agora está corrigido:

Não checo esse tópico há muito tempo, mas achei que deveria postar minhas descobertas para o caso de serem úteis a alguém.

Um computador de baixo custo com um Intel N2807 que nunca funcionou mais de 30 minutos sem travar quando eu não defini ... max_cstates = 1 agora funciona perfeitamente bem com um kernel padrão v. 5.3.1 ou 4.19.75. Eu o executei por alguns dias em cada versão sem problemas. O consumo médio de energia também caiu um pouco mais de 10%.

Demorou cerca de quatro anos para corrigir esse bug relatado pela primeira vez em 8 de dezembro de 2015.

WinEunuuchs2Unix
fonte