2009-12-24 4 views
1

Je lis des données d'un périphérique HID utilisant hiddev, il y a un thread dédié à lire, mais il semble que le thread laisse tomber des paquets. Je peux voir les paquets dans les tampons du noyau (usbmon) mais certains d'entre eux n'atteignent pas l'espace utilisateur. Les lectures dans le fil de lecture se terminent généralement à l'heure (~ 4ms). Je pense que le processus n'a pas assez de temps processeur, donc le noyau remplit sa file d'attente et laisse tomber les paquets, au moment où le processus arrive à les lire, il ne trouve que des queues ou rien du tout!incrémenter la priorité d'un thread dans Linux

Avez-vous pensé à augmenter la qualité du fil? quelle est la fonction appropriée?

Merci les gars

Répondre

1

Utilisez pthread_setschedprio() de librt.

+0

J'ai décidé de faire passer tout le processus en temps réel avec sched_p.sched_proirity = 20; // temps réel sched_setscheduler (getpid(), SCHED_FIFO, & sched_p); – Stb

Questions connexes