L'impression survient lorsque le 'propriétaire du verrou actuel' d'une ressource du noyau est le processeur actuel. Je ne sais pas ce qui pourrait conduire à cette condition. Impossible de trouver beaucoup sur le net. Quelqu'un at-il débogué cela?Ce qui pourrait provoquer la boucle morte, indiqué par l'impression "Dead loop sur le périphérique virtuel" dans le noyau Linux?
Répondre
Ok, je l'ai. Cela se produit généralement lorsque vous entrez deux fois la même fonction, en référence à la même ressource noyau, dans un seul contexte d'exécution du noyau linux (par exemple une instance unique de softIRQ, etc.). La sortie de ceci est de s'assurer que vous ne ré-entrez pas la fonction deux fois dans le même contexte d'exécution. C'est un bug dans votre code si cela arrive.
Déboguer? Vous voulez dire, besoin de savoir where in the source?
Il s'agit d'un message de diagnostic destiné à signaler une éventuelle impasse.
Dans ce cas particulier, il y a une file d'attente de transmission protégée par un spinlock. En plus de ce verrou, la file d'attente de transmission maintient également un champ "owner" qui contient un CPUID qui est défini lorsque ce spinlock est maintenu.
Comme vous le savez probablement, un spinlock tournera toujours sur une CPU si le verrou demandé a déjà été pris.
Donc at this location le code vérifie si le CPU est le même que celui qui verrouille le spinlock. Si elle n'est pas sur la même CPU, elle exécute les opérations qui pourraient nécessiter le verrouillage à effectuer. D'autre part, si c'est le même CPU, quelque chose ne va pas, c'est-à-dire que nous devrions réellement tourner en attente du verrou. Probablement nous sommes arrivés ici en raison d'un gestionnaire d'interruption incorrect/moitié inférieure.
Comme cela indique un blocage potentiel, un message de diagnostic est imprimé :).
- 1. ce qui pourrait provoquer l'échec de PUSHD?
- 2. Qu'est-ce qui pourrait provoquer un blocage ou provoquer l'échec de ce test de simultanéité?
- 3. ce qui pourrait provoquer une fusion cartésienne jointe
- 4. Qu'est-ce qui pourrait provoquer un programme Labwindows/CVI C à détester le numéro 2573?
- 5. Quelle est la séquence suivie par le noyau Linux pour configurer un périphérique?
- 6. Lorsque Java débogue ce qui pourrait provoquer le blocage de mon processus
- 7. sur la fonction d'écriture dans le pilote de périphérique Linux
- 8. Comment patcher le noyau Linux?
- 9. barrières dans le noyau Linux SMP
- 10. Où puis-je obtenir le api pour le noyau linux qui me permettent d'accéder à l'information dans le noyau
- 11. Structure PTE dans le noyau linux
- 12. erreur compilant le noyau Linux
- 13. sys_call_table dans le noyau linux 2.6.18
- 14. Comment configurer le noyau Linux dans Buildroot?
- 15. Qu'est-ce qui peut provoquer le blocage de fwrite?
- 16. Tutoriel pour la création de paquets dans le noyau Linux
- 17. Qu'est-ce qu'un périphérique Linux doit être vu par Hal?
- 18. Qu'est-ce qui peut provoquer select à bloquer en Python?
- 19. PerformSelectorInBackground qui fuit sur le périphérique
- 20. Réduire la vitesse du GPU dans le noyau Linux
- 21. Qu'est-ce qui peut provoquer le changement d'un Oracle ROWID?
- 22. Obtenir l'erreur sur la deuxième ligne dans le code ci-dessous .. Ce qui pourrait être faux?
- 23. Le périphérique virtuel Android SDK échoue?
- 24. Quels sont les algorithmes d'ordonnancement utilisés par le noyau Linux?
- 25. pile de noyau pour le processus linux
- 26. Le fichier .css nouvellement créé par SASS n'a pas de commentaires pour dire de quel fichier provient le CSS, qu'est-ce qui pourrait le provoquer?
- 27. Indication du temps dans le noyau Linux 2.6
- 28. Est-ce que Linux tombe dans le noyau sur tous les cœurs?
- 29. Verrouiller le profilage dans le noyau Linux 2.6
- 30. Question concernant le noyau Linux book
Merci. Mais je l'avais déjà "grepé". Je cherchais la raison de l'éventualité de cette condition. En fin de compte, a été en mesure de le comprendre. – Harty