Chargement...
 
Skip to main content

Historique: Portail Système

Aperçu de cette version: 29

(:arrow_left:) Page précédente : applis RT






Interruptions matérielles / IRQ

➡️ IRQ

Périphériques PCI et latency_timer


Pour cette partie, vous aurez besoin de la suite d'outils pci-utils, disponible pour toutes les distributions.

Présentation

Chaque périphérique PCI possède une valeur de "latency_timer" comprise en 0 et 248 cycles d'horloge du bus. Plus cette valeur est grande, plus le matériel gardera le bus longtemps pour lui. Cela augmentera la largeur de bande passante et le débit pour ce périphérique, mais cette "monopolisation" pourra perturber les autres périphériques PCI.
A contrario, une valeur de "latency_timer" faible indiquera au périphérique qu'il doit cesser ses transmissions si un autre composant à besoin du bus : ceci se traduira par une perte de bande passante importante.

Utilisation

En changeant la valeur de latency_timer pour chaque périphérique, vous pouvez changer leurs priorités afin de donner, par exemple, l'avantage à votre carte son !

Utilisez tout d'abord la commande "lspci" pour inspecter les latences PCI de vos dispositifs.
Copy to clipboard
lspci - v


Repérez en particulier les lignes correspondant à votre carte son ( Multimedia audio controller ). Si vous voulez que votre carte son soit le dispositif préféré de PCI, augmentez alors sa latence à au moins 128. Ramenez les valeurs de "latency_timer" de tous autres dispositifs PCI à quelque chose comme 64 ou 32 (sauf peut-être la carte graphique, cf remarque ci-dessous).

➡️ Attention : la commande setpci utilisée requiert des valeurs exprimées dans le système hexadécimal (alors que lspci vous les affiche en décimal ❗. Vous devrez donc convertir au préalable la valeur de latence souhaitée :

Valeur décimaleValeur hexadécimale
1610
3220
6440
12880
248F8
etc.


Exemple avec une carte son à l'adresse suivante (donnée par lspci) :
0000:00:0d.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24
             [CrystalClear SoundFusion Audio Accelerator] (rev 01)

Pour définir la latence pci de ce matériel au maximum :
Copy to clipboard
setpci -s 0:0d.0 latency_timer=f8


Pour modifier plusieurs périphériques en même temps (ici, ceux du bus 01 à une valeur de 32 cycles) :
Copy to clipboard
setpci -v -d 01:* latency_timer=20


Remarque importante

➡️ Attention : Ne baissez pas trop la valeur de "latency_timer", sous peine de voir certains périphériques ne plus fonctionner ! (elle ne devrait pas être inférieure à la valeur de MIN_GRANT du périphérique considéré. Consultez le fil suivant pour plus d'infos). Si certains de vos périphériques fonctionnent moins bien, remontez leur valeur de "latency_timer". Votre carte graphique aura par exemple du mal à suivre sur certains jeux si vous abaissez trop sa valeur !
Voilà un exemple qui motive le fait qu'on vous conseille tout au long de ce site de monter votre homestudio sur une partition dédiée ...

Liens

Si vous voulez plus d'info :



rtirq


Présentation


Il s'agit "simplement" d'un script permettant de prioriser des IRQ handlers (pour les utilisateurs du groupe "audio"). Le "programme" se compose de 2 fichiers : un script d'initialisation et un fichier de configuration. Un noyau avec le patch d'Ingo Molnar est indispensable (usage de threads pour la gestion des IRQ), voir la page Compiler un noyau 2.6RT.

Gentoo

Le plus simple est d'utiliser l'overlay "pro audio production applications" (voir page gentoo)
echo "sys-process/rtirq ~x86" >> /etc/portage/package.keywords
emerge rtirq
rc-update add rtirq default

Pour les autres


L'installation n'est pas trop compliquée ! Vous trouverez l'archive et des instructions (en anglais) ici :
http://lalists.stanford.edu/lau/2005/11/0459.html ou mieux ici : http://www.rncbc.org/jack/ (en bas de page) pour la toute dernière version.

Pour résumer, téléchargez l'archive "rtirq-20050914.tar.gz" et décompressez-là :


Placez les 2 fichiers au bon endroit et avec les droits corrects (en root) :
cp rtirq.sh /etc/init.d/rtirq
chmod 0755 /etc/init.d/rtirq

cp rtirq.conf /etc/sysconfig/rtirq
chmod 0644 /etc/sysconfig/rtirq


Intégrez le script dans votre distribution en tant que script d'initialisation (très variable d'une distribution à l'autre)

rc-update add rtirq default (pour Gentoo)
chkconfig --level 5 rtirq on (pour Mandriva. Voir aussi "drakxservice")
chkconfig --add rtirq (pour Redhat)
update-rc.d rtirq defaults (pour Ubuntu)
man chkconfig (pour les autres ❗


Le script utilise ensuite les commandes classiques des scripts d'initialisation de votre distribution :
/etc/init.d/rtirq start (pour démarrer)
/etc/init.d/rtirq stop (pour arrêter)
/etc/init.d/rtirq status (devinez ❗


La configuration se fait en modifiant le fichier "/etc/sysconfig/rtirq" (/etc/conf.d/rtirq sous Gentoo) qui est plutôt bien documenté. Il est important de s'assurer au préalable de l'absence de conflit d'IRQ, en particulier pour les périphériques listés dans "RTIRQ_NAME_LIST", en utilisant la commande
cat /proc/interrupts


Exemples


Pour les utilisateurs de cartes firewire, voir la page suivante, sur le site du projet Freebob :
http://freebob.sourceforge.net/index.php/System_Configuration_Hints
Vous trouverez ici comment régler les priorités afin de favoriser votre carte FireWire : http://freebob.sourceforge.net/index.php/IRQ_Threading_and_Priorities
Voir aussi : http://alsa.opensrc.org/Rtirq



Das_watchdog (Ze_Chien de garde !)


➡️ das_watchdog


Gestion des priorités

➡️ A venir !
L'objectif est d'expliquer comment utiliser les différents outils (qjackctl, rtirq, commande "chrt", etc.) pour obtenir quelque chose du type:
99 System timer IRQ
98 RTC IRQ
 
95 
. Midi threads of softsynths/midi sequencers
85
 
82 Soundcard IRQ
 
70 Jackd main loop
 
60 
. Other IRQ handlers (disk, network, USB, GFX)
40

inspiré de http://tapas.affenbande.org/?page_id=40



rt-exec

rt-exec est un utilitaire pour tester les capacités "temps-réel" d'un ordinateur.
Pour plus d'infos (installation, utilisation), un fichier "read-me" est disponible ici (en anglais) : ftp://ftp.compro.net/public/rt-exec/README

Les utilisateurs de Gentoo pourront utiliser l'overlay "pro audio production applications" pour l'installer. Pour les autres, le programme peut-être téléchargé ici : ftp://ftp.compro.net/public/rt-exec



Autres optimisations


Pour finir, voici enfin quelques pistes que vous pouvez encore explorer (outre les optimisations de la page Les discs durs et hdparm :
  • Méfiez-vous des tâches d'administration automatiques effectuées en arrière plan (cron, messagerie).
  • Désactivez les services inutiles. La gestion des services étant très différente d'une distribution à l'autre, consultez la documentation de votre distribution. Certaines proposent des outils graphiques ("drakxservice" sous Mandriva par exemple), pour d'autres, il faudra faire ça "à l'ancienne" (commandes "rc-status" et "rc-update" sous Gentoo, etc). N'oubliez pas enfin que certains services dépendent d'autres services !
  • Choisissez un desktop léger pour économiser des ressources.



(:arrow_left:) Page précédente : applis RT


Historique

Avancé
Information Version
Dimanche 19 décembre 2010 00:05 olinuxx BOX 59
Afficher
Dimanche 19 décembre 2010 00:03 olinuxx BOX 58
Afficher
Jeudi 16 décembre 2010 07:44 olinuxx rédaction 57
Afficher
Jeudi 16 décembre 2010 07:40 olinuxx liens morts 56
Afficher
Jeudi 16 décembre 2010 07:32 olinuxx liens morts 55
Afficher
Jeudi 16 décembre 2010 07:23 olinuxx 54
Afficher
Jeudi 16 décembre 2010 07:22 olinuxx 53
Afficher
Jeudi 16 décembre 2010 07:16 olinuxx 52
Afficher
Jeudi 16 décembre 2010 07:14 olinuxx 51
Afficher
Jeudi 16 décembre 2010 07:03 olinuxx 50
Afficher
Jeudi 16 décembre 2010 06:58 olinuxx déplacement vieille info vers ((applis rt oldscool)) 49
Afficher
Jeudi 16 décembre 2010 06:57 olinuxx + Utilisations avancées 48
Afficher
Jeudi 16 décembre 2010 06:54 olinuxx 47
Afficher
Lundi 06 décembre 2010 11:46 olinuxx 46
Afficher
Lundi 06 décembre 2010 11:14 olinuxx rédaction 45
Afficher
Lundi 06 décembre 2010 11:00 olinuxx rédaction 44
Afficher
Lundi 06 décembre 2010 10:50 olinuxx pose d'infos provenant de ((optimisations utilisations avancées)) 43
Afficher
Lundi 06 décembre 2010 10:49 olinuxx pose d'infos provenant de ((optimisations linux2.6)) 42
Afficher
Lundi 06 décembre 2010 10:31 olinuxx + applis rt 41
Afficher
Lundi 06 décembre 2010 09:49 olinuxx pose d'infos provenant de ((optimisation linux2.6)) 40
Afficher
Lundi 06 décembre 2010 09:47 olinuxx pose d'infos provenant de ((optimisations linux2.6)) 39
Afficher
Lundi 06 décembre 2010 09:45 olinuxx pose d'infos provenant de ((optimisation linux2.6)) 38
Afficher
Lundi 06 décembre 2010 09:17 olinuxx 37
Afficher
Lundi 06 décembre 2010 09:16 olinuxx 36
Afficher
Lundi 06 décembre 2010 09:15 olinuxx 35
Afficher
Lundi 06 décembre 2010 09:15 olinuxx test BOX 34
Afficher
Lundi 06 décembre 2010 09:06 olinuxx préparation BOXification 33
Afficher
Lundi 06 décembre 2010 08:58 olinuxx déplacement en page dédiée 32
Afficher
Lundi 06 décembre 2010 08:46 olinuxx déplacement infos dans ((gestion des irq)) 31
Afficher
Lundi 06 décembre 2010 08:41 olinuxx déplacement latency timer en page dédiée 30
Afficher
Lundi 06 décembre 2010 08:40 olinuxx 29
Afficher
Lundi 06 décembre 2010 08:40 olinuxx 28
Afficher
Lundi 06 décembre 2010 08:40 olinuxx 27
Afficher
Lundi 06 décembre 2010 08:38 olinuxx mise en page 26
Afficher
Lundi 06 décembre 2010 07:44 olinuxx déplacement info IRQ en page dédiée 25
Afficher
Lundi 06 décembre 2010 07:30 olinuxx déplacement infos ((das_watchdog)) 24
Afficher
Mardi 23 février 2010 10:36 yanshee 23
Afficher
Jeudi 17 décembre 2009 16:02 olinuxx 22
Afficher
Mercredi 29 avril 2009 23:33 Ejis 21
Afficher
Mercredi 09 mai 2007 01:51 Mysth-R update-rc.d rtirq defaults (pour Ubuntu) OK 20
Afficher
Jeudi 22 mars 2007 23:23 Trinine MAJ rtirq 19
Afficher
Mercredi 14 mars 2007 19:27 Trinine + lien pour rtirq 18
Afficher
Jeudi 28 décembre 2006 20:22 Trinine (qques modifs rtirq) 17
Afficher
Jeudi 21 décembre 2006 16:57 Trinine Liens page précédente/suivante 16
Afficher
Vendredi 15 septembre 2006 19:02 Trinine 15
Afficher
Samedi 05 août 2006 14:20 Trinine 14
Afficher
Dimanche 16 juillet 2006 16:48 Trinine 13
Afficher
Vendredi 07 juillet 2006 19:17 Trinine 12
Afficher
Vendredi 07 juillet 2006 19:11 Trinine 11
Afficher
Vendredi 07 juillet 2006 18:24 Trinine 10
Afficher