¿Cómo pueden las tareas "negarse a congelarse" al suspender?

17

Ayer, al cerrar mi computadora portátil, no entró en modo de espera de inmediato. Según los registros, estaba tratando de hacerlo, pero una tarea se negó a congelarse:

Freezing of tasks failed after 20.005 seconds (1 tasks refusing to freeze, wq_busy=0):

Esto continuó durante algunas horas hasta que el sistema realmente se suspendió. El syslogestaba lleno de mensajes como en esta pregunta , porque systemdestaba tratando una y otra vez.

¿Cómo puede pasar esto? ¿Por qué el planificador no puede dejar de programar esa aplicación? y luego se congela efectivamente? Leí que hay varios STOPcomandos, uno de ellos pregunta muy bien y uno de ellos obliga a congelar. ¿Por qué systemdno usó esto o por qué esto no funcionó aquí?

piegames
fuente

Respuestas:

25

La congelación de tareas se documenta en detalle en la documentación del núcleo .

Los procesos de espacio de usuario no pueden negarse a congelarse; se congelan, pero la señalización entre el núcleo y los procesos se maneja automáticamente mediante el código de manejo de la señal (la congelación usa una señal falsa).

Si ve mensajes de "tareas que se niegan a congelar", eso significa que un subproceso del núcleo se niega a congelarse, generalmente porque está haciendo algo que no se puede controlar. Sin embargo, tener que esperar varias horas para que el núcleo se suspenda no es normal; los rastros de la pila en los mensajes de registro ayudarían a tener una idea de lo que va mal.

Stephen Kitt
fuente