IOAT aktiviert, aber nicht unter Linux verwendet?

11

Auf unseren R610s mit igb Version 4.1.2 wird das ioatdma-Modul geladen (und mit lsmod geladen):

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

Wir haben einen Quad-Port Intel Nic, der dies unterstützen sollte:

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)

Es sieht jedoch so aus, als würde es nicht für Netzwerkverkehr verwendet:

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

Weiß jemand, wie man es so macht, dass ioat für den Netzwerkverkehr verwendet wird?

Kernel ist 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
quelle
Redhat 6 richtig?
Mdpc
@mdpc: CentOS 6.3, versuchte einen viel neueren Kernel, um zu sehen, ob es helfen würde, aber es tat nicht. Dies war ein sekundäres Problem, das bei einem hohen Si% auf ksoftirqd mit IPSec-Verkehr entdeckt wurde (nicht, dass ich ein Auslagern auf den IPSec-Verkehr selbst erwarte, aber es scheint, dass es überhaupt kein Ioatdma gibt.
Kyle Brandt
2
Unterstützt der Motherboard-Chipsatz IOAT? Ist IOAT im System-BIOS aktiviert? Sehen Sie "Intel (R) I / OAT DMA Engine gefunden" in dmesg? Dies würde darauf hinweisen, dass eine Netzwerkkarte gefunden wurde, die IOAT unterstützt. Sehen Sie in Dmesg "DCA ist im BIOS deaktiviert"? Dies würde darauf hinweisen, dass DCA weder vom BIOS unterstützt noch aktiviert wird.
Suprjami
Als ich Dell das letzte Mal (vor einigen Jahren) fragte, sagten sie, dass das R610-BIOS weder DCA unterstützt, noch planen sie, Unterstützung dafür hinzuzufügen.
Craig
2
Richtig, wie Jungs sagten, was zeigt "dmesg | grep DCA"?
Danila Ladner

Antworten:

4

Wie groß sind die Pakete, die Sie senden? Standardmäßig wird der IOATDMA-Treiber nur für große Paketgrößen verwendet. Sie können die aktuelle Einstellung anzeigen mit:

cat /proc/sys/net/ipv4/tcp_dma_copybreak

Wenn der Wert niedriger sein soll, können Sie ihn mit sysctl festlegen. Verwenden Sie beispielsweise Folgendes, um die Paketgröße auf 1 festzulegen:

sysctl net.ipv4.tcp_dma_copybreak=1
Boscoe
quelle
2

Aktualisieren Sie vor dem Start den gesamten Server wie das BIOS einschließlich der Festplatten-Firmware.

Verwenden Sie zweitens immer den neuesten Intel-Netzwerktreiber igb. Kompilieren Sie es einfach aus der Quelle.

Das BIOS aktiviert sowohl DCA als auch IOATDMA. Versuchen Sie unter Linux Folgendes:

# modprobe ioatdma

# dmesg

Sie sollten den ioatdma-Treiber geladen sehen.

Jetzt unterscheidet sich der igbTreiber von ixgbedem mit 10 GBit / s. Da ich den Einsatz nicht igbüberhaupt, kann ich Ihnen sagen , zu stoppen Netzwerk , um zu versuchen /etc/init.d/network stopund rmmod igbund modprobe igbwieder , um zu sehen , ob es irgendwelche Unterschiede und post - Ergebnisse , wenn sind , können Sie pls.

Andrew Smith
quelle