Ontem, ao fechar meu laptop, ele não entrou imediatamente no modo de espera. De acordo com os logs, estava tentando, mas uma tarefa se recusou a congelar:
Freezing of tasks failed after 20.005 seconds (1 tasks refusing to freeze, wq_busy=0):
Isso continuou por algumas horas até que o sistema realmente suspendesse. O syslog
estava cheio de mensagens como nesta pergunta , porque systemd
estava tentando de novo e de novo.
Como isso pode acontecer? Por que o agendador não pode simplesmente parar de agendar esse aplicativo? e então é efetivamente congelado? Eu li que existem vários STOP
comandos, um deles pedindo gentilmente e outro forçando o congelamento. Por que systemd
não usou isso ou por que isso não funcionou aqui?
O congelamento de tarefas é documentado em detalhes na documentação do kernel .
Os processos do espaço do usuário não podem se recusar a congelar; eles ficam congelados, mas a sinalização entre o kernel e os processos é tratada automaticamente pelo código de manipulação de sinal (o congelamento usa um sinal falso).
Se você está vendo mensagens “tasks recusando-se a congelar”, isso significa que um thread do kernel está se recusando a congelar, geralmente porque está fazendo algo que não pode ser verificado. No entanto, ter que esperar várias horas para que o kernel suspenda não é normal; os rastreamentos de pilha nas mensagens de log ajudariam a ter uma ideia do que está acontecendo de errado.