Chargement...
 
Skip to main content

Historique: Temps-réel pour les processus IRQ

Aperçu de cette version: 53

Image




! Page en cours de germination !
(attention au gazon s'il-vous-plait)


Cette page va décrire les démarches à effectuer pour configurer l'accès temps-réel des applications et du matériel pour un noyau temps-réel.

Lorsque vous utilisez un noyau temps-réel, vous devez non seulement configurer la priorité temps-réel de vos applications, mais aussi la priorité de votre carte son et de l'horloge système. Ceci est capital, car donner aux applications une priorité supérieure à celle de votre matériel audio peut vous causer bien des problèmes !

Accès temps-réel applications

Démarrez un terminal.

Vérifiez pour commencer que vous avez bien suivi la procédure configurer l'accès temps réel pour les applications.

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

Si besoin se reporter à cette page pour localiser le fichier de configuration limits.conf
rtprio est la valeur de priorité maximale que vous avez fixée pour les applications audio (les "clients" de jack)

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

Enfin, vérifiez que vous démarrez jack avec une valeur de priorité de 70 (-P70)
à vérifier



Accès temps-réel IRQ


Pourquoi ?

Vous l'avez compris, brider la priorité des applications à 90 nous laisse un peu de marge pour placer les IRQ nécessaires au dessus. Mais qu'est-ce qu'un IRQ ?

I.R.Q. = Interrupt ReQuest = Requête d'Interruption. Pour plus d'information, la lecture de cette page wikipedia vous contentera certainement.


Les IRQ sont contrôlés par des processus du noyau, appelons les "processus IRQ". Pour un noyau standard (module CONFIG_PREEMPT_DESKTOP), la priorité des "processus IRQ" est, par défaut, supérieure à celle des autres applications, et elle nous est invisible. Mais avec le patch temps-réel du noyau temps-réel (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 ! Par contre cette configuration est un passage obligé car : les "processus IRQ" qui nous intéressent ont une priorité faible par défaut (autour de 50), ce qui peut créer 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 scène : jacques_kit@70 pousse alsa_driver@50 dans le fossé ...
... En croyant pouvoir "choper son bus", mais sans savoir que ...
... bah c'était lui ...
... le conducteur du bus ! 🙄.

Résultat de l'expérience : blocage total du réseau de bus, autrement connu sous le nom de x-runs.


voir la priorité des "processus IRQ"


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

ps imprime des "process snapshot" et dévoile même 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 (très) longue en fonction du système utilisé, ajoutons un filtre pour ce qui nous intéresse :
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 résultat de la commande précédente et affiche les occurences


[+]

Voilà enfin la liste qui nous intéresse ! Mais attendez un instant et observez le résultat de votre commande : où est "la carte son" ? et "l'horloge système" ?
La liste que vous voyez est composée dans l'ordre de (pour chaque processus) :
numéro identifiant, classe "temps-réel", priorité "temps-réel" (TS pour standard/SCHED_OTHER et FF pour SCHED_FIFO/temps-réel) et enfin la ligne de commandes invoquée.

...to be continued

l'horloge système haute résolution : rtc0

les cartes sons , trouver le bon numéro d'irq avec /proc/interrupts

Les noeuds pci, changer les irq ?



modifier les priorités



automatiser tout ca

rtirq...

En savoir plus



liens :
le sujet de forum lié à cette page : http://www.linuxmao.org/tikiwiki/tiki-view_forum_thread.php?forumId=8&comments_threshold=0&comments_parentId=24403&comments_offset=60&comments_per_page=30&thread_style=commentStyle_plain
définition 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 générale 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
IRQ Priorities How-To :

  • Note de rédaction (olivier) : Je pense qu'il faut déjà passer par la page IRQ avant de venir sur cette page qui doit parler plus précisément de la gestion des IRQ par rt-irq. (éventuellement même la renommer).

Historique

Avancé
Information Version
Lundi 06 décembre 2010 08:26 olinuxx (mode stylo rouge) 66
Afficher
Lundi 06 décembre 2010 08:26 olinuxx mise en page 65
Afficher
Lundi 06 décembre 2010 08:25 olinuxx ptit truc 64
Afficher
Lundi 06 décembre 2010 08:25 olinuxx mise en forme 63
Afficher
Lundi 06 décembre 2010 08:24 olinuxx 62
Afficher
Lundi 06 décembre 2010 08:24 olinuxx rédaction 61
Afficher
Lundi 06 décembre 2010 08:22 olinuxx lien interne 60
Afficher
Lundi 06 décembre 2010 08:22 olinuxx 59
Afficher
Lundi 06 décembre 2010 08:21 olinuxx rédaction 58
Afficher
Lundi 06 décembre 2010 08:20 olinuxx rédaction 57
Afficher
Lundi 06 décembre 2010 08:16 olinuxx déplacement infos 56
Afficher
Lundi 06 décembre 2010 08:15 olinuxx 55
Afficher
Lundi 06 décembre 2010 08:14 olinuxx rédaction 54
Afficher
Lundi 06 décembre 2010 08:02 olinuxx note olivier 53
Afficher
Lundi 22 novembre 2010 04:27 olinuxx 52
Afficher
Samedi 18 septembre 2010 00:10 pianolivier 51
Afficher
Vendredi 17 septembre 2010 02:14 olinuxx 50
Afficher
Vendredi 17 septembre 2010 02:14 olinuxx 49
Afficher
Jeudi 09 septembre 2010 01:16 olinuxx 48
Afficher
Jeudi 09 septembre 2010 01:15 olinuxx 47
Afficher
Jeudi 09 septembre 2010 01:14 olinuxx IRQ wikipedia 46
Afficher
Jeudi 09 septembre 2010 01:12 olinuxx 45
Afficher
Jeudi 09 septembre 2010 00:53 olinuxx 44
Afficher
Jeudi 09 septembre 2010 00:52 olinuxx 43
Afficher
Jeudi 09 septembre 2010 00:51 olinuxx 42
Afficher
Jeudi 09 septembre 2010 00:50 olinuxx remplissage de liste ''plus vide du coup'' 41
Afficher
  • 1
  • 2 (en cours)
  • »