Je suis à la traque d'une erreur "ordonnancement en atomique" dans l'un de nos pilotes, et je me demande si les ioctl sont un contexte atomique. Aussi, si quelqu'un a quelque chose à partager sur la façon d'entrer et de sortir des contextes atomiques, et les lieux communs, ils se produisent, ce serait utile.Les fonctions du pilote ioctl sont-elles exécutées à partir d'un contexte atomique sous Linux 2.6?
Q
Les fonctions du pilote ioctl sont-elles exécutées à partir d'un contexte atomique sous Linux 2.6?
3
A
Répondre
8
Non, les ioctls fonctionnent généralement dans un contexte de processus. Si un pilote saisit un spinlock pendant le traitement de l'ioctl, le pilote entrera dans le contexte atomique et restera dans le contexte atomique jusqu'à ce qu'il libère le spinlock.
Voir: http://lwn.net/Articles/274695/ pour une bonne discussion sur le contexte atomique dans Linux
2
Avez-vous mis CONFIG_DEBUG_SPINLOCK_SLEEP
, qui pourrait vous donner plus d'information, incluant une trace de pile, d'où l'erreur est.
L'autre angle à regarder est ce que vous appelez des fonctions de sommeil. Les exemples sont msleep()
, mutex_lock()
, copy_to_user()
etc.
Questions connexes
- 1. Écrire un pilote PCIe hotplug personnalisé Linux 2.6.x
- 2. ioctl FIOREAD sur socket raw sous Linux
- 3. Pilote Linux - Comment éviter les interruptions
- 4. Les applications Linux peuvent-elles être exécutées sous Android?
- 5. Indication du temps dans le noyau Linux 2.6
- 6. Appels ioctl de l'application 32 bits au pilote 64 bits
- 7. Pilote Linux phys_mem_access_prot undefined
- 8. Utilisation de Linux ioctl avec Mono
- 9. atomique sous .NET
- 10. Appel des fonctions bash à partir du sous-processus
- 11. Où sont les fonctions de socket BSD définies sous Linux?
- 12. Exécution d'une commande à partir d'un contexte d'utilisateur et de groupe spécifique sous Linux
- 13. Démarrer l'application à partir du pilote
- 14. implémenter les commandes ioctl() dans FreeBSD
- 15. problème C++ des fonctions mathématiques (sous Linux)
- 16. Comment accéder à la mémoire physique dans Linux à partir de l'espace utilisateur?
- 17. Exceptions sous Linux à partir d'un objet partagé (.so)
- 18. Comment appeler Wine dll à partir de python sous Linux?
- 19. unlocked_ioctl vs ioctl normale
- 20. Résoudre les recherches JNDI à partir du contexte d'application Spring?
- 21. Les applications .net fonctionnent-elles sous Linux?
- 22. Comment trouver les fonctions qui ne sont pas exécutées?
- 23. Inconnu ioctl 2062, 2065, 2066 à partir vmmon lors du démarrage d'une machine virtuelle (serveur VMware 1.0.7 pour Linux)
- 24. contexte prioritaire automatique dans les fonctions javascript
- 25. Où puis-je obtenir les dernières informations sur aio sous Linux 2.6.x
- 26. Installation Watir Web pilote sur Fedora Linux
- 27. cx-gel + linux + python 2.6 + wxPython
- 28. Affinité du processeur sous Linux
- 29. Puis-je ouvrir mon propre pilote de périphérique deux fois simultanément à partir d'un programme utilisateur sous Linux?
- 30. Obtenir un accès exclusif à un périphérique tty à partir d'un programme racine sous Linux