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

14

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

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

Totor
fonte

Respostas:

13

Se uma tarefa estiver bloqueada, aguarda a disponibilidade de recursos novamente.

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

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

Nils
fonte
Você pode ser mais específico? "Bloqueado" significa "continuamente em um estado ininterrupto"?
Totor 13/08/2013
@ Motor Neste contexto, ele está aguardando recursos. Portanto, outro io não é interrompível.
Nils
7

Basicamente, esse log é acionado se o agendador da CPU não tiver mudado para o processo no período especificado 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 alternado, 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.

http://lxr.free-electrons.com/source/kernel/hung_task.c#L75

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 não sei o que outras podem haver.

rakslice
fonte
Talvez um erro relevante: Linux 3,14-3,17 em processadores Haswell - processos pode pendurar em futex_wait - groups.google.com/d/msg/mechanical-sympathy/QbmpZxp6C64/...
rakslice