Miałem ten post w moim dzienniku jądra: INFO: task XXX blocked for more than 120 seconds
. Chciałbym wiedzieć, co to znaczy technicznie: w jakich warunkach jądro wyświetla ten komunikat o zadaniu?
Dla przypomnienia, moim zablokowanym zadaniem było multipathd
, ale interesuje mnie również ogólne znaczenie tego błędu.
linux-kernel
scheduling
Totor
źródło
źródło
Zasadniczo rejestrowanie jest uruchamiane, jeśli program planujący procesor nie przełączył się na proces w danym czasie, a proces nie kwalifikuje się do wyjątku.
Wyjątkami są specjalne przypadki, w których proces nie został przełączony, ale nie powinien się zalogować. Nie rozumiem jasno warunków wyjątków; FWIW komentarze do spraw w kodzie są następujące:
http://lxr.free-electrons.com/source/kernel/hung_task.c#L75
Co do tego, dlaczego zadanie może nie zostać zaplanowane na długi okres czasu, byłoby to ciągle możliwe w TASK_UNINTERRUPTABLE (stan „D”), ale nie wiem, jakie mogą być inne zadania.
źródło