Je lis l'article suivant de Robert Love
http://www.linuxjournal.com/article/6916
qui dit
"...Discutons du fait que les files d'attente de travail fonctionnent dans un contexte de processus. Cela contraste avec les autres mécanismes de la moitié inférieure, qui fonctionnent tous dans un contexte d'interruption. Le code qui s'exécute dans un contexte d'interruption est incapable de dormir ou de se bloquer, parce que le contexte d'interruption n'a pas de processus de soutien avec lequel replanifier. Par conséquent, comme les gestionnaires d'interruption ne sont pas associés à un processus, il n'y a rien que le planificateur puisse mettre en sommeil et, plus important encore, rien qu'il puisse réveiller..."
Je ne comprends pas. AFAIK, l'ordonnanceur du noyau est O(1), il est implémenté par le bitmap. Alors qu'est-ce qui empêche le planificateur de mettre le contexte d'interruption en veille et de prendre le prochain processus planifiable et de lui passer le contrôle ?
6 votes
Notez que le patchset linux-rt rend les gestionnaires d'interruptions threadés, ce qui leur permet de dormir. Cela améliore la latence, mais les performances en prennent un coup.
1 votes
Cette question mérite un grand nombre de réviseurs, IMO, chaque programmeur de bas niveau a réfléchi à cette question au cours de sa carrière. voir aussi cet échange de mail hi.baidu.com/rwen2012/item/2040e7cace3c6a0dac092f3c