2016-06-03 4 views
3

Je développe un logiciel en temps réel qui fonctionnera sous Linux avec le patch PREEMPT_RT. Bien que cela me permette d'obtenir des performances en temps réel en utilisant les planificateurs en temps réel Linux (SCHED_RR ou SCHED_FIFO), je ne suis pas sûr des valeurs de priorité que je devrais utiliser pour mes threads. Sur mon système, quand je regarde les priorités que je voir (ne montrant que les processus avec RTPRIO):Comment choisir la priorité thread/processus en temps réel Linux?

$ ps -e -o cmd,pri,rtprio 
CMD       PRI RTPRIO 
[sirq-high/0]    89  49 
[sirq-timer/0]    89  49 
[sirq-net-tx/0]    89  49 
[sirq-net-rx/0]    89  49 
[sirq-block/0]    89  49 
[sirq-block-iopo]   89  49 
[sirq-tasklet/0]    89  49 
[sirq-sched/0]    89  49 
[sirq-hrtimer/0]    89  49 
[sirq-rcu/0]     89  49 
[posixcputmr/0]    139  99 
[events/0]     41  1 
[irq/17-systemac]   90  50 
[irq/19-watchdog]   90  50 
[irq/18-eth0]    90  50 
[irq/16-serial]    90  50 

J'ai deux questions:

  1. Quels sont tous ces sirq, irq, posixcputmr tâches? Kernel threads?
  2. À quelle priorité dois-je faire fonctionner mon logiciel? Dois-je utiliser une priorité plus élevée que la plupart de ces threads système (> 50 ou même 99) ou moins (< 49)?

Répondre

1

Quelles sont toutes ces tâches sirq, irq, posixcputmr? Kernel threads?

Oui, toutes les tâches entre parenthèses sont des threads du noyau.

À quelle priorité dois-je faire fonctionner mon logiciel?

De 2-69 pour RT normal et 90-98 pour vos threads d'application à priorité très élevée. Ce dernier bloquera tous les gestionnaires d'IRQ, alors essayez d'en faire le moins possible en haute priorité. Source

+0

Parfait. Merci pour la référence! – dinkelk