¿IOAT habilitado pero no utilizado con Linux?

11

En nuestros R610s con igb versión 4.1.2, veo la carga del módulo ioatdma (y cargado 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

Tenemos un Intel de cuatro puertos que debería admitirlo:

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)

Sin embargo, parece que no se está utilizando para ningún tráfico de red:

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

¿Alguien sabe cómo hacerlo tan ioat se utiliza para el tráfico de red?

Kernel es 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
fuente
redhat 6 ¿verdad?
mdpc
@mdpc: CentOS 6.3, probó un kernel mucho más nuevo para ver si ayudaría, pero no fue así. Este fue un problema secundario descubierto al tener un alto porcentaje de si en ksoftirqd con tráfico ipsec (no es que espere descargar en el tráfico ipsec en sí, pero parece que no hay ioatdma en absoluto.)
Kyle Brandt
2
¿El chipset de la placa base tiene soporte para IOAT? ¿IOAT está activado en el BIOS del sistema? ¿Ves "Intel (R) I / OAT DMA Engine encontrado" en dmesg? Esto indicaría que se ha localizado una NIC que admite IOAT. ¿Ves "DCA está deshabilitado en BIOS" en dmesg? Esto indicaría que no hay compatibilidad o habilitación de BIOS para DCA.
suprjami
La última vez que le pregunté a Dell (hace varios años) dijeron que el BIOS R610 no es compatible con DCA ni tienen planes de agregar soporte para él.
Craig
2
Bien, como dijeron los muchachos, ¿qué muestra "dmesg | grep DCA"?
Danila Ladner el

Respuestas:

4

¿Qué tan grandes son los paquetes que está enviando? Por defecto, el controlador IOATDMA solo se usa en paquetes de gran tamaño. Puede ver la configuración actual con:

cat /proc/sys/net/ipv4/tcp_dma_copybreak

Si desea que el valor sea menor, puede configurarlo con sysctl. Por ejemplo, para establecer el tamaño del paquete en 1, use:

sysctl net.ipv4.tcp_dma_copybreak=1
Boscoe
fuente
2

Antes de comenzar, actualice el servidor completo como el BIOS, incluido el firmware del disco duro.

En segundo lugar, use siempre el controlador de red Intel más reciente igb. Solo compílalo desde la fuente.

El BIOS habilita tanto DCA como IOATDMA. En Linux intente esto:

# modprobe ioatdma

# dmesg

Debería ver el controlador ioatdma cargado.

Ahora, el igbcontrolador es diferente al de ixgbe10GBps. Puesto que yo no uso igbpara nada, te puedo decir que para tratar de la red de parada /etc/init.d/network stopy rmmod igby modprobe igbotra vez para ver si hay algunas diferencias y los resultados de POST si se puede pls.

Andrew Smith
fuente