IOAT ativado, mas não está sendo usado com Linux?

11

Nos nossos R610s com igb versão 4.1.2, vejo o módulo ioatdma carregando (e carregado com 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

Temos um nicho Intel de quatro portas que deve suportá-lo:

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)

No entanto, parece que não está sendo usado para nenhum tráfego de rede:

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

Alguém sabe como fazê-lo tão ioat é usado para o tráfego de rede?

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

Kyle Brandt
fonte
redhat 6 certo?
Mdpc
@mdpc: CentOS 6.3, tentou um kernel muito mais novo para ver se isso ajudaria, mas não ajudou. Esta foi uma questão secundária descoberto ao ter alta% si on ksoftirqd com o tráfego IPSec (Não que eu espere descarregamento no próprio tráfego IPsec, mas seria parece que não há ioatdma em tudo.
Kyle Brandt
2
O chipset da placa-mãe tem suporte para IOAT? O IOAT está ativado no BIOS do sistema? Você vê "Mecanismo DMA I / OAT Intel (R) encontrado" no dmesg? Isso indicaria que uma NIC que suporta IOAT foi localizada. Você vê "O DCA está desativado no BIOS" no dmesg? Isso indicaria nenhum suporte ou ativação do BIOS para DCA.
Suprjami
Quando perguntei à Dell pela última vez (há vários anos), eles disseram que o BIOS R610 não suporta DCA nem têm planos de adicionar suporte a ele.
Craig
2
Certo, como os caras afirmaram o que "dmesg | grep DCA" mostra?
Danila Ladner

Respostas:

4

Qual o tamanho dos pacotes pelos quais você está enviando? Por padrão, o driver IOATDMA é usado apenas em tamanhos de pacotes grandes. Você pode visualizar a configuração atual com:

cat /proc/sys/net/ipv4/tcp_dma_copybreak

Se você deseja que o valor seja menor, é possível configurá-lo usando sysctl. Por exemplo, para definir o tamanho do pacote como 1, use:

sysctl net.ipv4.tcp_dma_copybreak=1
Boscoe
fonte
2

Antes de iniciar, atualize o servidor completo, como o BIOS, incluindo o firmware do disco rígido.

Em segundo lugar, sempre use o driver de rede Intel mais recente igb. Basta compilá-lo a partir da fonte.

O BIOS habilita o DCA e o IOATDMA. No linux, tente o seguinte:

# modprobe ioatdma

# dmesg

Você deve ver o driver ioatdma carregado.

Agora, o igbdriver é diferente do ixgbeque é um de 10 GBps. Desde que eu não uso igbem tudo, posso dizer-lhe para tentar rede parada /etc/init.d/network stope rmmod igbe modprobe igbnovamente para ver se existem diferenças e resultados post se você puder pls.

Andrew Smith
fonte