Cómo configurar intel_idle.max_cstate = 1

12

¿Cómo puedo configurar Intel idle max cstate a 1 y cómo puedo verificar cuándo lo hará? Tengo un problema de congelación debido a los núcleos de senderos de bahía.

probé el kernel 4.5 4.1.12 4.4 pero el problema de congelación aún continúa. por el momento 4.4 es mi versión de kernel.

Ozan Temel
fuente
A partir de ahora (8/2019), este hilo no indica que establecer el intel_idle.max_cstate = 1 es una resolución oficial del error publicado en 2011. Dado que en mi caso es (tuve que duplicar) un problema intermitente, antes de que yo AGREGAR intel_idle.max_cstate = 1 a mi GRUB, me gusta obtener documentación que lo indique. El documento original de Bugzilla no está claro al respecto. ¿Puede algún participante en este foro ayudarme amablemente a verificar oficialmente esta "solución"?
Jan Hus

Respuestas:

21

Si usa GRUB:

Con sudo, edite /etc/default/gruby edite la GRUB_CMDLINE_LINUX_DEFAULTlínea agregando intel_idle.max_cstate=1a lo que ya pueda estar allí. Después de guardar el archivo ejecutado sudo update-grub, luego reinicie. Sugiera que primero guarde una copia de su archivo grub original.

Para verificar que su cstate no sea más profundo que 1 use turbostat (paquete: linux-tools-common).

Ejemplo (donde ya hay algo en el 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

Realice el cambio (usando mi método para el control de configuración):

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

Cambia esto:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"

A esto:

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

Y actualizar:

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

Ahora marque (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

También debería ver estos mensajes en dmesgy var/log/kern.log(editado):

~$ 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
fuente
Me pregunto qué valor, en la salida de turbostat, muestra que el estado no va más allá de 1. ¿Qué quiere decir con deeper? ¿Qué hacer de manera diferente si va más profundo?
Stephane
1
@Stephane: Por "más profundo", me refería a estados c superiores a 1. Si ha configurado la línea de comando grub correctamente, no debería ir a cstate más profundo (más alto que) 1. Puede observar la CPU y el paquete, cstates mayor de 1 muestra 0.00% de tiempo en esos estados en la línea de salida del turboestador.
Doug Smythies
1
Mi Thinkpad X201i estaba haciendo reinicios duros cada hora. Habilité el intel_idle.max_cstate=1en el grub como GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"con una actualización de grub sudo update-gruby reinicié la máquina. Ya no se producen reinicios duros. Estoy contento de haber resuelto mi problema. Sin embargo, me pregunto qué es exactamente esta propiedad que le dice a la CPU.
Stephane
FYI He estado siguiendo este informe de error durante aproximadamente un año y también puede interesarle: bugzilla.kernel.org/show_bug.cgi?id=109051 . También aquí en AU: askubuntu.com/questions/803640/…
WinEunuuchs2Unix
3

Después de tener los mismos problemas de congelación con Linux y mi asrock Q2900, encontré en un sitio web de TI alemán la solución / solución provista por Intel. ( https://www.golem.de/news/intel-einfrieren-bei-intels-bay-trail-socs-durch-patch-abgefedert-1609-123546.html ) Hay un problema general con Bay-Trail-SoCs de Intel. El enlace al parche: https://bugzilla.kernel.org/attachment.cgi?id=223851

Más información: Este parche / script obtiene el modo de ahorro de energía. La solución de tema anterior elimina este modo en absoluto.

Helle
fuente
Bienvenido a Ask Ubuntu! Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar los enlaces para referencia.
Élder Geek
1

Editar / etc / por defecto / grub:

GRUB_CMDLINE_LINUX_DEFAULT="intel_idle.max_cstate=1"

correr

update-grub
shutdown -r now
BSDguru
fuente
0

Ya no es necesario actualizar grub si cambia a un kernel más reciente.

De acuerdo con el comentario # 1013 en el informe de error , ahora está solucionado:

No he revisado este hilo en mucho tiempo, pero pensé que debería publicar mis hallazgos en caso de que sea de alguna utilidad para alguien.

Una computadora de gama baja con un procesador Intel N2807 que nunca funcionó más de 30 minutos sin fallar cuando no configuré ... max_cstates = 1 ahora funciona perfectamente bien con un kernel estándar v. 5.3.1 o 4.19.75. Lo ejecuté durante un par de días con cada versión sin ningún problema. El consumo de energía promedio también disminuyó un poco más del 10%.

Se han tardado unos cuatro años en solucionar este error que se informó por primera vez el 8 de diciembre de 2015.

WinEunuuchs2Unix
fuente