J'ai un lien fibre optique, avec un pilote de périphérique propriétaire.
Le lien entre dans une carte PCIe. En cours d'exécution sur un RHEL 5.2 (2.6.18-128 ~)
J'ai mmap
'l'interface sur la carte pour l'installation et l'accès FIFO etc, et ces lectures/écritures prennent quelques μs à compléter, donc tout y est bon.Gestion des interruptions à faible latence (délai avg attendu pour le retour du noyau vers l'espace utilisateur)?
Mais bien sûr, je ne peux pas l'utiliser pour les interruptions, donc je dois utiliser le module noyau fourni, avec son interface lib-espace utilisateur.
WaitForInterrupt(); // API lib interface to kernel module
// Interrupt occurs and am returned to my code in user space
time = CurrentTime() - LatchedTime(); // time to get to here
Il faut environ 70μs pour revenir de WaitForInterrupt(). (L'heure à laquelle l'interruption est déclenchée est mémorisée dans le firmware, j'ai lu ceci, ce que je dis plus haut prend ~ 2μs, et comparez-le avec l'heure actuelle dans le firmware)
Quels sont les temps d'accès attendus entre une interruption et l'API de l'espace utilisateur interrompt la méthode d'attente d'appel?
Interfaces réseau/autres interfaces haute vitesse?
Linux n'est pas un système d'exploitation en temps réel. –
Je ne pense pas que j'ai besoin de temps réel, juste le temps rapide! –