IOAT abilitato ma non utilizzato con Linux?


11

Sui nostri R610 con igb versione 4.1.2 vedo il caricamento del modulo ioatdma (e caricato con 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

Abbiamo una Intel quad port che dovrebbe supportarla:

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)

Tuttavia, sembra che non venga utilizzato per alcun traffico di rete:

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

Qualcuno sa come renderlo così ioat viene utilizzato per il traffico di rete?

Il kernel è 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


redhat 6 giusto?
mdpc,

@mdpc: CentOS 6.3, ha provato un kernel molto più recente per vedere se avrebbe aiutato, ma non è stato così. Questo è stato un problema secondario riscontrato quando si ha un alto si% su ksoftirqd con traffico ipsec (non che mi aspetto di scaricare sul traffico ipsec stesso, ma sembra che non ci sia affatto ioatdma.
Kyle Brandt

2
Il chipset della scheda madre ha il supporto per IOAT? IOAT è attivato nel BIOS del sistema? Vedi "Motore DMA I / OAT Intel (R) trovato" in dmesg? Ciò indicherebbe che è stata individuata una scheda NIC che supporta IOAT. Vedi "DCA è disabilitato nel BIOS" in dmesg? Ciò indicherebbe nessun supporto BIOS o abilitazione per DCA.
suprjami,

L'ultima volta che ho chiesto a Dell (diversi anni fa) mi hanno detto che il BIOS R610 non supporta DCA né ha in programma di aggiungere supporto.
Craig,

2
Bene, come hanno affermato i ragazzi cosa mostra "dmesg | grep DCA"?
Danila Ladner,

Risposte:


4

Quanto sono grandi i pacchetti che stai inviando? Per impostazione predefinita, il driver IOATDMA viene utilizzato solo su pacchetti di grandi dimensioni. È possibile visualizzare l'impostazione corrente con:

cat /proc/sys/net/ipv4/tcp_dma_copybreak

Se vuoi che il valore sia più basso, puoi impostarlo usando sysctl. Ad esempio, per impostare la dimensione del pacchetto su 1, utilizzare:

sysctl net.ipv4.tcp_dma_copybreak=1

2

Prima di iniziare, aggiorna il server completo come il BIOS incluso il firmware del disco rigido.

In secondo luogo, utilizzare sempre il driver di rete Intel più recente igb. Basta compilarlo dalla fonte.

Il BIOS abilita sia DCA che IOATDMA. In linux prova questo:

# modprobe ioatdma

# dmesg

Dovresti vedere il driver ioatdma caricato.

Ora, il igbdriver è diverso da ixgbequello da 10 GBps. Dal momento che io non uso igba tutti, vi posso dire per cercare di rete arresto /etc/init.d/network stoped rmmod igbe modprobe igbancora una volta per vedere se ci sono differenze e risultati POST se si può pls.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.