O que significa “INFO: tarefa XXX bloqueada por mais de 120 segundos” significa exatamente no Linux?

14

Eu recebi esta mensagem no meu log do kernel: INFO: task XXX blocked for more than 120 seconds . Gostaria de saber o que significa tecnicamente: sob quais condições o kernel exibe essa mensagem sobre uma tarefa?

Para o registro, minha tarefa bloqueada era multipathd , mas também estou interessado no significado geral desse erro.

    
por Totor 17.05.2013 / 10:39

2 respostas

13

Se uma tarefa for bloqueada, ela aguarda a disponibilidade dos recursos novamente.

No seu caso, houve um problema IO ou uma contenção na área do disco. Ou a carga do seu sistema era tão alta que não havia potência de CPU suficiente disponível para concluir o trabalho a tempo.

Eu vi esse erro no cron, se ele tentar iniciar um trabalho em um horário muito ocupado.

    
por 17.05.2013 / 12:31
6

Basicamente, esse registro é acionado se o escalonador da CPU não tiver mudado para o processo no período determinado e o processo não se qualificar para uma exceção.

As exceções são casos especiais em que um processo não foi alterado, mas não deve ser registrado. Não entendo claramente as condições para as exceções; FWIW os comentários sobre os casos no código são:

Also, skip vfork and any other user process that freezer should skip.

Also, when a freshly created task is scheduled once, changes
its state to TASK_UNINTERRUPTIBLE without having ever been
switched out once, it musn't be checked.

link

Quanto ao motivo pelo qual uma tarefa pode não ser agendada por um longo período de tempo, estar continuamente em TASK_UNINTERRUPTABLE (estado 'D') seria uma possibilidade, mas eu não sei o que outras pessoas poderiam ter.

    
por 19.12.2014 / 20:55