Linux'ta “INFO: 120 saniyeden fazla engellenen görev XXX” ne anlama geliyor?


14

Benim çekirdek günlüğüne bu mesajı vardı: INFO: task XXX blocked for more than 120 seconds. Teknik olarak ne anlama geldiğini bilmek istiyorum: çekirdek hangi koşullar altında bir görevle ilgili bu mesajı gösteriyor?

Kayıt için engellenen görevim oldu multipathd, ancak bu hatanın genel anlamı ile de ilgileniyorum.

Yanıtlar:


13

Bir görev engellenirse, kaynakların yeniden kullanılabilir olmasını bekler.

Sizin durumunuzda disk alanında bir GÇ sorunu ya da bir çekişme vardı. Veya sistem yükünüz o kadar yüksekti ki, işi zamanında bitirmek için yeterli CPU gücü yoktu.

Çok yoğun bir zamanda bir iş başlatmaya çalışırsa, bu hatayı crondan gördüm.


Daha spesifik olabilir misiniz? "Engellenen", kesintisiz bir durumda sürekli "anlamına mı gelir?
Totor

@ Motor Bu bağlamda kaynakları bekliyor. Yani diğer io kesintiye uğramaz.
Nils

7

Temel olarak, CPU zamanlayıcı belirli bir süre içinde işleme geçmediyse ve işlem bir istisna için uygun değilse bu günlük kaydı tetiklenir.

İstisnalar, bir işlemin geçmediği ancak oturum açılmaması gereken özel durumlardır. İstisnaların koşullarını açıkça anlamıyorum; Koddaki vakalarla ilgili yorumlar:

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

Bir görevin neden uzun bir süre için planlanmayabileceğine ilişkin olarak, sürekli olarak TASK_UNINTERRUPTABLE ('D' durumunda) olmak bir olasılık olabilir, ancak başkalarının ne olabileceğini bilmiyorum.


Belki de ilgili bir hata: Haswell işlemcileri üzerinde Linux 3.14-3.17 - süreçler futex_wait'e asılabilir - groups.google.com/d/msg/mechanical-sympathy/QbmpZxp6C64/…
rakslice
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.