Em 2024, desenvolvedores propuseram um contador interno ao kernel Linux para resolver uma limitação prática: até então, administradores dependiam da análise manual dos logs do kernel para identificar “hung tasks” (ou “processos em espera” ou “processos bloqueados”), o que dificultava o monitoramento contínuo.
Esse contador recebeu o nome ``, foi incorporado ao Linux 6.13 e ficou acessível pelo caminho /proc/sys/kernel/hung_task_detect_count, permitindo consultar de forma direta o total acumulado de detecções desde o boot.
Uma hung task é um processo ou thread que fica bloqueado por muito tempo (normalmente em estado D, “uninterruptible sleep”), esperando por I/O, locks ou recursos do kernel. O hung_task_detect_count define quantas vezes consecutivas o kernel precisa detectar um processo como “travado”, antes de emitir um aviso no log.
Em outras palavras, o kernel verifica periodicamente se há processos bloqueados, ou em espera prolongada, e os registra num contador. Quando esse contador atinge um valor predeterminado, imprime mensagens no dmesg / syslog e gera um stack trace da tarefa afetada.
Exemplo:
cat /proc/sys/kernel/hung_task_detect_count
1
Assim pode-se tratar tarefas bloqueadas como uma métrica crítica de estabilidade e o uso de um contador simplifica a observação do sistema, especialmente em ambientes com muitos servidores ou contêineres, onde falhas transitórias podem desaparecer rapidamente nos avisos tradicionais.
Com base nessa funcionalidade, tornou-se viável adotar estratégias mais agressivas de confiabilidade, como reduzir o tempo limite de detecção para identificar problemas mais cedo, mesmo com o risco de alertas falsos.
A partir do valor do contador e de limites de tempo definidos, pode-se tomar decisões automáticas, como migrar contêineres para outros nós antes que ocorram interrupções maiores em produção.
Mais recentemente surgiu a possibilidade de zerar o contador em tempo de execução. Antes, o valor apenas crescia desde o boot, o que exigia que o administrador lembrasse o número anterior para fazer comparações, após ajustes no sistema.
Agora basta escrever o valor zero em /proc/sys/kernel/hung_task_detect_count para reiniciar a contagem, algo útil após atualizações dinâmicas do kernel ou correções aplicadas sem reinicialização. Adição simples que facilita a administração diária, corrigindo uma ausência que surpreendentemente não existia desde o início do recurso.
Falando claramente…
O contador de processos bloqueados ou em espera infinita permite que administradores saibam, de forma imediata e objetiva, se o sistema enfrentou problemas de bloqueio no kernel desde a inicialização ou desde a última limpeza do contador. Isso elimina a dependência constante da análise de logs, que pode ser imprecisa, trabalhosa e sujeita à perda de informações quando os avisos desaparecem rapidamente.
Ferramentas de supervisão podem coletar esse valor periodicamente e disparar alertas quando ele aumenta, indicando um problema real em andamento ou recorrente. Isso reduz alarmes desnecessários e facilita a identificação de regressões após atualizações de kernel, drivers ou firmware.
Em ambientes com contêineres, virtualização ou alta densidade de carga, o impacto é ainda mais claro. O contador viabiliza políticas automáticas de resposta, como realocar cargas de trabalho quando o sistema começa a apresentar bloqueios prolongados, antes que usuários percebam lentidão ou indisponibilidade. Dessa forma, ele ajuda a prevenir interrupções e degradações de serviço.
No suporte e na manutenção ele acelera diagnósticos. Ao receber um sistema com desempenho degradado, o administrador consegue confirmar rapidamente se ocorreram bloqueios no kernel, mesmo que o problema já tenha cessado. A possibilidade de zerar o contador após correções também facilita testes controlados e validações.
O hung_task_detect_count não muda a forma como o Linux é usado, mas melhora de forma contínua a confiabilidade, o monitoramento e a tomada de decisão no uso diário do sistema.