J'ai une machine Linux avec deux cartes PCIe RS-485 (XR17V354 & XR17V352). J'ai un port sur l'une des cartes câblé à un port sur l'autre carte. Ces cartes sont pilotées par le pilote série générique (serial8250). Je fais un test et mesure la latence. J'ai un processus Linux envoyant deux octets sur le port, puis écoute deux octets entrants. L'autre processus reçoit deux octets et renvoie immédiatement deux octets.Comment mesurer la latence entre une interruption de matériel et un appel système associé?
Je mesure cette latence d'aller-retour à environ 1500 microsecondes avec un écart-type d'environ 40 microsecondes. J'essaie de comprendre la source de cette latence. Spécifiquement, je voudrais comprendre la différence de temps à partir de laquelle un IRQ dur se déclenche pour signaler que les données sont prêtes à lire et le temps que les octets sont rendus disponibles pour le processus d'espace utilisateur.
Je suis conscient de la fonction ftrace, mais je ne suis pas sûr de la meilleure façon de l'utiliser, ou s'il y a d'autres outils plus appropriés. Merci.