Skip to main content

Historique: Tuto Réduire la latence des périphériques PCI

Aperçu de cette version: 21

Avant-propos : pour cette partie, vous aurez besoin de la suite d'outils pci-utils (site web : http://mj.ucw.cz/linux.html#pciutils), disponible pour toutes Distributions.




Chaque priphrique PCI possde une valeur de "latency_timer" comprise en 0 et 248 cycles d'horloge du bus. Plus cette valeur est grande, plus le matriel gardera le bus longtemps pour lui. Cela augmentera la largeur de bande passante et le dbit pour ce priphrique, mais cette "monopolisation" pourra perturber les autres priphriques PCI.
contrario, une valeur de "latency_timer" faible indiquera au priphrique 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 priphrique, vous pouvez changer leurs priorits 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

Par exemple :
00:1d.0 Audio device: ALi Corporation High Definition Audio/AC'97 Host Controller
	Subsystem: Elitegroup Computer Systems Device 1878
	Flags: bus master, medium devsel, latency 128, IRQ 22
	Memory at ff6f8000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel driver in use: HDA Intel
	Kernel modules: snd-hda-intel

vous voyez la latence PCI de votre priphrique la 3me ligne : latency 128.

Reprez en particulier les lignes correspondant votre carte son (par exemple Multimedia audio controller ). Si vous voulez que votre carte son soit le dispositif prfr 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 utilise requiert des valeurs exprimes dans le systme hexadcimal (alors que lspci vous les affiche en dcimal ❗. Vous devrez donc convertir au pralable la valeur de latence souhaite :

Valeur dcimaleValeur hexadcimale
1610
3220
6440
12880
248F8
etc.


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

Pour dfinir la latence pci de ce matriel au maximum (en super utilisateur) :
Copy to clipboard
setpci -s 0:0d.0 latency_timer=f8


Pour modifier plusieurs priphriques en mme temps (ici, ceux du bus 01 une valeur de 32 cycles) :
Copy to clipboard
setpci -v -d 01:* latency_timer=20



Attention : au prochain redmarrage, la latence PCI sera remise sa valeur d'origine, si vous voulez que a soit persistant, il faut l'inscrire dans un script de dmarrage, par exemple : /etc/rc.local pour la famille ubuntu.


Remarque importante

➡️ Attention : Ne baissez pas trop la valeur de "latency_timer", sous peine de voir certains priphriques ne plus fonctionner ! (elle ne devrait pas tre infrieure la valeur de MIN_GRANT du priphrique considr. Consultez le fil suivant pour plus d'infos). Si certains de vos priphriques 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 ddie ...


Et pour le PCI-E (pci express)??

Pour le PCI-Express, toutes ces manipulations ne servent rien. (source dev de ffado)
voir: http://wiki.linuxmusicians.com/doku.php?id=system_configuration

Liens

Si vous voulez plus d'info :


[+]

Historique

Information Version
Wed 28 Nov 2018 16:22 olinuxx + changement titre de la page 28
Afficher
Fri 06 Nov 2015 14:47 olinuxx Recherche et remplacement en masse 27
Afficher
Wed 03 Sep 2014 10:13 olinuxx Recherche et remplacement en masse 25 - 26
Afficher
Wed 03 Jul 2013 15:25 pianolivier structure par défaut 24
Afficher
Tue 02 Apr 2013 07:48 utilisateur_anonyme2 22 - 23
Afficher
Tue 02 Oct 2012 18:53 xzu Précisions PCI-E 21
Afficher
Sat 15 Sep 2012 14:04 xzu ajout lien 20
Afficher
Fri 13 Jul 2012 10:44 xzu correction code 19
Afficher
Sat 19 mai 2012 19:44 pianolivier 17 - 18
Afficher
Mon 09 Apr 2012 16:33 pianolivier +BOX 16
Afficher
Wed 21 Mar 2012 19:38 pianolivier fil d'ariane 15
Afficher
Tue 20 Mar 2012 22:05 pianolivier suppression BOX (début de réorga du dossier) 14
Afficher
Sun 11 Mar 2012 14:48 pianolivier 13
Afficher
Sun 11 Mar 2012 14:12 pianolivier mise en page 12
Afficher
Wed 22 Feb 2012 20:04 Dominique Ajout cgroup dans box 11
Afficher
Tue 04 Jan 2011 14:31 olinuxx rédaction 9 - 10
Afficher
Tue 04 Jan 2011 13:26 olinuxx BOX 3 - 8
Afficher
Mon 20 Dec 2010 22:06 olinuxx + BOX 2
Afficher
Mon 06 Dec 2010 08:43 olinuxx création de la page à partir de ((autres optimisation)) + quelques retouches 1
Afficher