Linux

BUG: soft lockup

Un CPU est bloqué depuis trop longtemps sans scheduler

Ce qui se passe réellement

Le watchdog noyau a détecté qu'un cœur CPU n'a pas exécuté le thread watchdog/migration pendant au moins 20 secondes (configurable via kernel.watchdog_thresh). Le cœur est coincé dans une boucle en kernel space (spinlock non libéré, boucle infinie dans un driver, ou DPC/interrupt handler trop long). Le système n'est pas forcément crashé — les autres cœurs fonctionnent peut-être encore.

Solutions

  1. 1Identifier le module fautif dans la stack trace affichée dans dmesg.
  2. 2Mettre à jour le noyau et les drivers/modules tiers.
  3. 3Si c'est un driver de stockage (fréquent avec les contrôleurs RAID) : mettre à jour le firmware du contrôleur.
  4. 4Augmenter le seuil du watchdog temporairement pour diagnostic : sysctl kernel.watchdog_thresh=30.
  5. 5Vérifier la charge I/O : un disque saturé peut bloquer un cœur dans un wait I/O en mode noyau.
Explorer tous les codes Linux
← Retour à Error Decoder