Chargement...
 
Skip to main content

Historique: Temps-réel pour les processus IRQ

Aperçu de cette version: 97

Image
! Page en cours de germination !


Cette page va dcrire les dmarches effectuer pour configurer l'accs temps-rel des applications et du matriel pour un noyau temps-rel.

Lorsque vous utilisez un noyau temps-rel, vous devez non seulement configurer la priorit temps-rel de vos applications (voir la page Temps-rel pour les applications), mais aussi la priorit de votre carte son et de l'horloge systme. Ceci est capital car donner aux applications une priorit suprieure celle de votre matriel audio peut vous causer bien des problmes !





Dmarrez un terminal.

Vrifiez pour commencer que vous avez bien suivi la procdure qui permet de configurer l'accs temps rel pour les applications (voir PAM).

Pour cela, la commande grep sur le fichier de configuration de PAM fait notre affaire :
imprimer rtprio
Copy to clipboard
~~blue:#~~ grep rtprio /etc/security/limits.conf @audio - ~~red:rtprio~~ 90

rtprio est la valeur de priorit maximale que vous avez fixe pour les applications audio (les "clients" de JACK)

➡️ Si besoin se reporter la page PAM pour localiser le fichier de configuration de PAM.

Vrifiez aussi que vous tes dans le groupe audio
lister les groupes
Copy to clipboard
~~blue:#~~ groups votre_utilisateur cdrom ... audio ...

Enfin, vrifiez que vous dmarrez JACK avec une valeur de priorit de 70 (-P70).
vrifier



Pourquoi ?

Vous l'avez compris, brider la priorit des applications 90 nous laisse un peu de marge pour placer les IRQ ncessaires au dessus.
Heureusement pour nous, le noyau Linux peut contrler l'attribution de la priorit des IRQs par des processus, que nous appellerons "processus IRQ".

Pour un noyau standard (module CONFIG_PREEMPT_DESKTOP), la priorit des "processus IRQ" est, par dfaut, suprieure celle des autres applications, et elle nous est invisible/intouchable.

Mais avec le patch temps-rel du noyau temps-rel (module CONFIG_PREEMPT_RT), on peut modifier la priorit des "processus IRQ" facilement ce qui nous apporte une grande souplesse et c'est tout bon pour nous ! Ceci dit, cette configuration est un passage oblig car : les "processus IRQ" qui nous intressent ont une priorit faible par dfaut (autour de 50), ce qui peut crer des conflits avec les applications audio :


Exemple de discussion entre 2 processus audio : (mauvaise configuration)
  • jacques_kit@70 : laiiiiiiiisse passer !
  • alsa_driver@50 : attend je...
  • jacques_kit@70 : pousse toi jte dit je vais louper mon bus !
  • alsa_driver@50 : attention !!...

... vous devinez le reste de la scne : jacques_kit@70 pousse alsa_driver@50 dans le foss ...
... En croyant pouvoir "choper son bus", mais sans savoir que ...
... bah c'tait alsa_driver@50, le conducteur du bus ! 🙄.

Rsultat de l'exprience : blocage total du rseau de bus, autrement connu sous le nom de x-runs.



Savoir "quel processus" est rgl sur "quelle priorit" est facile, une simple commande linux de base ps argumente comme il faut suffit :
lister les processus :
Copy to clipboard
~~blue:#~~ ps -eo pid,class,rtprio,cmd

ps imprime des "process snapshot" et dvoile mme les processus critiques avec l'option -e
l'option -o nous permet d'avoir des informations de notre choix en plus.

La liste peut tre (trs) longue en fonction du systme utilis, ajoutons un filtre pour ce qui nous intresse :
lister les ~034~processus IRQ~034~
Copy to clipboard
~~blue:#~~ ps -eo pid,class,rtprio,cmd | grep -i IRQ

| grep -i cherche le mot "IRQ" dans le rsultat de la commande prcdente et affiche les occurences

ps -eo pid,class,rtprio,cmd | grep -i IRQ
[sudo] password for olinuxx: 
    4 FF      49 [sirq-high/0]
    5 FF      49 [sirq-timer/0]
    6 FF      49 [sirq-net-tx/0]
    7 FF      49 [sirq-net-rx/0]
    8 FF      49 [sirq-block/0]
    9 FF      49 [sirq-tasklet/0]
   10 FF      49 [sirq-sched/0]
   11 FF      49 [sirq-hrtimer/0]
   12 FF      49 [sirq-rcu/0]
   18 FF      49 [sirq-high/1]
   19 FF      49 [sirq-timer/1]
   20 FF      49 [sirq-net-tx/1]
   21 FF      49 [sirq-net-rx/1]
   22 FF      49 [sirq-block/1]
   23 FF      49 [sirq-tasklet/1]
   24 FF      49 [sirq-sched/1]
   25 FF      49 [sirq-hrtimer/1]
   26 FF      49 [sirq-rcu/1]
  206 FF      50 [irq/9-acpi]
  549 FF      50 [irq/21-sata_uli]
  568 FF      50 [irq/14-pata_ali]
  569 FF      50 [irq/15-pata_ali]
  655 FF      80 [irq/23-ehci_hcd]
  660 FF      80 [irq/17-ohci_hcd]
  664 FF      79 [irq/18-ohci_hcd]
  668 FF      78 [irq/19-ohci_hcd]
  677 FF      75 [irq/1-i8042]
  687 FF      50 [irq/8-rtc0]
  904 FF      50 [irq/20-eth0]
  907 FF      50 [irq/23-ohci1394]
 1244 FF      50 [irq/7-parport0]
 1362 FF      50 [irq/22-HDA Inte]
 1892 FF      50 [irq/17-radeon@p]
10231 TS       - grep --color=auto -i IRQ


Voil enfin la liste qui nous intresse ! Mais attendez un instant et observez le rsultat de votre commande : o est "la carte son" ? et "l'horloge systme" ?

La liste que vous voyez est compose dans l'ordre de (pour chaque processus) :
numro identifiant, classe "temps-rel", priorit "temps-rel" (TS pour standard/SCHED_OTHER et FF pour SCHED_FIFO/temps-rel) et enfin la ligne de commandes invoque.

...to be continued

l'horloge systme haute rsolution : rtc0

les cartes sons , trouver le bon numro d'irq avec /proc/interrupts

Les nuds pci, changer les irq ?



(en cours d'criture)

(en cours d'criture)
  • Pour les cartes ISA : "isapnptools". Voir par exemple ici : http://www.trustonme.net/didactels/119.html.
  • Certaines cartes (ISA) disposent de "jumpers" permettant cette modification
  • Certains BIOS permettent l'attribution d'IRQ (aux slots PCI par exemple)
  • Changez le priphrique de slot PCI si votre carte-mre en possde plusieurs !
  • Dsactivez/retirez les priphriques inutiliss (rorganisation des IRQ)
  • Pour dsactiver l'ACPI qui a tendance se placer sur l'IRQ 9, placer le paramtre "acpi=off" au dmarrage (avec Grub ou Lilo)


automatiser tout ca

il existe un script tout prt pour automatiser tout ce procd, voir rtirq


En savoir plus

liens :

le sujet de forum li cette page : tiki-view_forum_thread.php?forumId=8&comments_parentId=24403
autre sujet li avec quelques explications supplmentaires : tiki-view_forum_thread.php?forumId=2&comments_parentId=35312
dfinition IRQ : http://www.pcmus.com/irq.htm
le module CONFIG_RT_GROUP_SCHED : http://www.mjmwired.net/kernel/Documentation/scheduler/sched-rt-group.txt
comprendre la basse latence : Hardware interrupts, schedulers : http://ccrma.stanford.edu/planetccrma/software/understandlowlat.html
schedulers and policies : http://ccrma.stanford.edu/planetccrma/man/man2/sched_setscheduler.2.html
IRQ Priorities : vue gnrale et utilisation de chrt http://tapas.affenbande.org/wordpress/?page_id=40
configuration du systeme par linuxmusicians : http://wiki.linuxmusicians.com/doku.php?id=system_configuration#priorities




[+]

Historique

Avancé
Information Version
Mardi 13 mars 2018 11:30 olinuxx 116
Afficher
Mardi 13 mars 2018 11:30 olinuxx 115
Afficher
Mardi 13 mars 2018 11:29 olinuxx lien-forum correct + précisions liens-forum 114
Afficher
Mardi 13 mars 2018 11:22 olinuxx 113
Afficher
Mardi 13 mars 2018 11:22 olinuxx titre de la page 112
Afficher
Mardi 13 mars 2018 11:21 olinuxx coquille + mise en page + ponctuation + drapeaux EN et FR + alias 111
Afficher
Mardi 13 mars 2018 11:14 olinuxx coquilles + code 110
Afficher
Mardi 13 mars 2018 11:13 olinuxx mise à jour + cohérence wiki + ponctuation + code 109
Afficher
Mardi 13 mars 2018 11:11 olinuxx mise à jour de la rédaction + code 108
Afficher
Mardi 13 mars 2018 11:10 olinuxx mise à jour de la rédaction + ponctuations 107
Afficher
Mardi 13 mars 2018 11:05 olinuxx cohérence + mise en page 106
Afficher
Jeudi 19 janvier 2017 17:35 Thieriki 105
Afficher
Vendredi 06 novembre 2015 14:47 olinuxx Recherche et remplacement en masse 104
Afficher
Vendredi 05 septembre 2014 17:58 olinuxx Recherche et remplacement en masse 103
Afficher
Mercredi 03 septembre 2014 10:09 olinuxx Recherche et remplacement en masse 102
Afficher
Mercredi 03 septembre 2014 10:09 olinuxx Recherche et remplacement en masse 101
Afficher
Mercredi 03 septembre 2014 10:09 olinuxx Recherche et remplacement en masse 100
Afficher
Mercredi 06 novembre 2013 08:56 pianolivier wiki_up conversion 99
Afficher
Mercredi 27 février 2013 20:13 utilisateur_anonyme2 98
Afficher
Dimanche 05 août 2012 12:18 olinuxx 97
Afficher
Dimanche 05 août 2012 12:09 olinuxx 96
Afficher
Dimanche 20 mai 2012 12:52 pianolivier suppression de la page ((IRQ)) + alias 95
Afficher
Dimanche 20 mai 2012 12:49 pianolivier ajout d'éléments de la page ((IRQ)) 94
Afficher
Samedi 19 mai 2012 19:44 pianolivier 93
Afficher
Samedi 19 mai 2012 19:27 pianolivier renommage de la page +alias(gestion des IRQ) 92
Afficher
Jeudi 17 mai 2012 17:34 pianolivier modif lien(s) interne(s) 91
Afficher
Samedi 12 mai 2012 17:55 pianolivier 90
Afficher
Samedi 12 mai 2012 17:54 pianolivier modif d'un lien interne 89
Afficher
Lundi 09 avril 2012 16:33 pianolivier +BOX 88
Afficher
Mercredi 21 mars 2012 19:37 pianolivier fil d'ariane 87
Afficher
Mardi 20 mars 2012 22:00 pianolivier suppression BOX (début de réorga du dossier) 86
Afficher
Dimanche 11 mars 2012 14:47 pianolivier 85
Afficher
Dimanche 11 mars 2012 14:09 pianolivier 84
Afficher
Dimanche 11 mars 2012 14:09 pianolivier mise en page 83
Afficher
Mercredi 22 février 2012 20:09 Dominique Ajout de cgroup dans box 82
Afficher
Mercredi 01 février 2012 18:28 pianolivier +1lien forum 81
Afficher
Samedi 24 septembre 2011 21:49 pianolivier déplacement de 2 liens dans ((rtirq)) 80
Afficher
Jeudi 22 septembre 2011 18:32 pianolivier déplacement de §rtirq sur une page dédiée ((rtirq)) 79
Afficher
Jeudi 22 septembre 2011 16:55 pianolivier supp alias (rtirq) pour création de page 78
Afficher
Dimanche 29 mai 2011 14:33 pianolivier +alias (rtirq) 77
Afficher
Dimanche 06 mars 2011 13:50 pianolivier lien install debian 76
Afficher
Dimanche 06 mars 2011 13:49 pianolivier 75
Afficher
Lundi 17 janvier 2011 03:39 olinuxx enlevage du lien "dur" + liens internes + maj/min 74
Afficher
Dimanche 16 janvier 2011 23:33 pianolivier ajout d'un paragraphe tiré de l'ancienne doc ffado 73
Afficher
Mardi 04 janvier 2011 13:25 olinuxx BOX 72
Afficher
Lundi 20 décembre 2010 22:08 olinuxx + BOX 71
Afficher
Lundi 06 décembre 2010 21:53 olinuxx correction sinon je vais me faire super disputer par pianolivier :P 70
Afficher
Lundi 06 décembre 2010 08:57 olinuxx mise en page 69
Afficher
Lundi 06 décembre 2010 08:56 olinuxx intégration info + mise en page + rédactiob 68
Afficher
Lundi 06 décembre 2010 08:36 olinuxx mise en page 67
Afficher
  • «
  • 1 (en cours)
  • 2