IOAT activé mais non utilisé avec Linux?

11

Sur nos R610 avec la version 4.1.2 igb, je vois le chargement du module ioatdma (et chargé avec lsmod):

ioatdma: Intel(R) QuickData Technology Driver 4.00
ioatdma 0000:00:16.0: irq 80 for MSI/MSI-X
ioatdma 0000:00:16.1: irq 81 for MSI/MSI-X
ioatdma 0000:00:16.2: irq 82 for MSI/MSI-X
ioatdma 0000:00:16.3: irq 83 for MSI/MSI-X
ioatdma 0000:00:16.4: irq 84 for MSI/MSI-X
ioatdma 0000:00:16.5: irq 85 for MSI/MSI-X
ioatdma 0000:00:16.6: irq 86 for MSI/MSI-X
ioatdma 0000:00:16.7: irq 87 for MSI/MSI-X

Nous avons un processeur Intel à quatre ports qui devrait le prendre en charge:

07:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
07:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
08:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
08:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)

Cependant, il semble qu'il ne soit utilisé pour aucun trafic réseau:

[root@or-rtlb01 ~]# cat /sys/class/dma/dma*/bytes*
0
0
0
0
0
0
0
0

Quelqu'un sait-il comment faire en sorte que ioat soit utilisé pour le trafic réseau?

Le noyau est Linux or-rtlb01.ds.stackexchange.com 3.7.7-1.el6.elrepo.x86_64 #1 SMP Mon Feb 11 22:28:07 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

Kyle Brandt
la source
redhat 6 à droite?
mdpc
@mdpc: CentOS 6.3, a essayé un noyau beaucoup plus récent pour voir si cela aiderait, mais il ne l'a pas fait. Il s'agissait d'un problème secondaire découvert lors d'un taux de% si élevé sur ksoftirqd avec le trafic ipsec (pas que je m'attende à un déchargement sur le trafic ipsec lui-même, mais il semblerait qu'il n'y ait aucun ioatdma du tout.
Kyle Brandt
2
Le chipset de la carte mère prend-il en charge l'IOAT? L'IOAT est-il activé dans le BIOS du système? Voyez-vous "Moteur Intel (R) I / OAT DMA trouvé" dans dmesg? Cela indiquerait qu'une carte réseau prenant en charge l'IOAT a été localisée. Voyez-vous "DCA est désactivé dans le BIOS" dans dmesg? Cela indiquerait l'absence de prise en charge ou d'activation du BIOS pour DCA.
suprjami
La dernière fois que j'ai posé la question à Dell (il y a plusieurs années), ils ont dit que le BIOS R610 ne prend pas en charge DCA et qu'ils n'ont pas l'intention d'en ajouter.
Craig
2
D'accord, comme les gars l'ont dit, que montre "dmesg | grep DCA"?
Danila Ladner

Réponses:

4

Quelle est la taille des paquets que vous envoyez? Par défaut, le pilote IOATDMA n'est utilisé que sur les grandes tailles de paquets. Vous pouvez afficher le paramètre actuel avec:

cat /proc/sys/net/ipv4/tcp_dma_copybreak

Si vous souhaitez que la valeur soit inférieure, vous pouvez la définir à l'aide de sysctl. Par exemple, pour définir la taille du paquet sur 1, utilisez:

sysctl net.ipv4.tcp_dma_copybreak=1
Boscoe
la source
2

Avant de commencer, mettez à jour le serveur complet comme le BIOS, y compris le micrologiciel du disque dur.

Deuxièmement, utilisez toujours le dernier pilote réseau Intel igb. Compilez-le simplement à partir de la source.

Le BIOS permet à la fois DCA et IOATDMA. Sous Linux, essayez ceci:

# modprobe ioatdma

# dmesg

Vous devriez voir le pilote ioatdma chargé.

Maintenant, le igbpilote est différent de ixgbecelui de 10 Go / s. Depuis que je ne l' utilise pas igbdu tout, je peux vous dire d'essayer de réseau d'arrêt /etc/init.d/network stopet rmmod igbet à modprobe igbnouveau pour voir s'il y a des différences et des résultats post si vous le pouvez pls.

Andrew Smith
la source