Cerco león readme Shu OK1043A-C DPDK Ambient Experience

Feiling incrustado en junio de este año lanzado --FET1043A-C tablero de base con diseño de procesador QorIQ® LS1043A de NXP, con cuatro Cortex-A53 núcleos ARMv8-A Arquitectura velocidad de reloj de 1,6 g, bajo consumo de energía, -eficiente de la energía. Hasta 10 GB de SerDes quad-canal incluye una variedad de configuraciones flexibles, ha jugado un rendimiento del procesador de red LS1043A QorIQ® en la máxima medida en el apoyo Feiling diseño del suelo, el uso de un Gigabit, Gigabit seis de diseño, con procesador interno Los motores de aceleración DPAA1, combinados con gran capacidad de memoria de 2 GB DDR4, rendimiento de la red es simplemente un monstruo.

Cerco león readme Shu OK1043A-C DPDK Ambient Experience

Hardware tan bueno, entonces el tradicional núcleo de Linux también si su partido bueno? La respuesta es no.

Las razones son las siguientes aspectos:

❶ manejo de interrupciones. Cuando una gran cantidad de paquetes de red llega, producirá solicitud de interrupción de hardware frecuente, la interrupción de hardware de menor prioridad puede interrumpir interrupción suave antes de o durante la ejecución de una llamada al sistema, si esto interrumpe con frecuencia, se producirá más aérea de alto rendimiento.

❷ copia de la memoria. En circunstancias normales, un paquete de red del adaptador de red a la solicitud pasa por el siguiente proceso: datos transmitidos desde el búfer del núcleo para abrir la tarjeta a través de la DMA, etc., y luego se copian desde el espacio del núcleo al espacio modo de usuario, una pila de protocolos del núcleo Linux esta operación que consume tiempo, incluso representó el 57,1% de procesamiento general del paquete de datos.

❸ cambio de contexto. llegar frecuentes interrupciones de hardware y de interrupción suave puede llamar en cualquier momento de aprovechar la operación del sistema, lo que generará una gran cantidad de cambio de contexto por encima. Además, en el marco de diseño multi-roscado basada en el servidor, la programación entre los hilos también tienen contexto frecuente conmutación de sobrecarga, la energía competitiva misma cerradura es también un problema muy serio.

❹ fallo localizado. Hoy en día es más procesador de núcleo corriente principal, lo que significa que un paquete de procesamiento a través de múltiples núcleos de la CPU puede ser, por ejemplo, un paquete puede ser interrumpido en cpu0, el procesamiento de modo de núcleo CPU1, CPU2 proceso de modo de usuario, de modo transversal múltiples núcleos, puede causar invalidación caché de la CPU, lo que resulta en fallo localizado. Si la arquitectura NUMA, pero resultará en la memoria de acceso cruzada NUMA, el rendimiento se ha visto muy afectada.

❺ gestión de memoria. página de la memoria del servidor tradicional es 4K, con el fin de mejorar la velocidad de acceso a memoria, evitando pérdida de caché, la memoria caché puede aumentar la tabla de asignación de entrada, pero esto afectaría a la eficiencia de recuperación de la CPU.

Sobre la base de las cuestiones anteriores, podemos ver el núcleo en sí es un gran cuello de botella. Está claro que la solución es encontrar formas de evitar el kernel. Muchas personas mayores a través de la investigación pionera, DPDK destacan en muchos programas.

Cerco león readme Shu OK1043A-C DPDK Ambient Experience

Cerco león readme Shu OK1043A-C DPDK Ambient Experience

"Papel vienen Zhongjue sabe que esta práctica es esencial," nos permitió experimentar la próxima DPDK través de un ejemplo.

En primer lugar, el medio ambiente DPDK, necesidad de modificar el árbol de dispositivos, la configuración de red para el estado del usuario. Es necesario utilizar el archivo árbol de dispositivos:

OK10xx-linux-fs / flexbuild / build / Linux / Linux / arm64 / FSL-ls1043a-RDB-usdpaa.dtb

La placa de desarrollo FSL-ls1043a-RDB-usdpaa.dtb copiado en el directorio raíz, un árbol dispositivo de reemplazo utiliza los siguientes comandos:

mv / run / media / mmcblk0p2 / FSL-ls1043a-RDB-sdk.dtb / run / media / mmcblk0p2 / FSL-ls1043a-RDB-sdk.dtb.bak

cp / FSL-ls1043a-RDB-usdpaa.dtb / run / media / mmcblk0p2 / boot

LN-s /run/media/mmcblk0p2/boot/fsl-ls1043a-rdb-usdpaa.dtb/run/media/mmcblk0p2/boot/fsl-ls1043a-rdb-sdk.dtb

reiniciar

Tras el éxito del lanzamiento de la placa de desarrollo para reemplazar Entrada: ifconfigfm1-mac1

Si se le solicita Devicenot encontró que el éxito ha sido reemplazado.

Restaurar la configuración predeterminada después de la finalización de la prueba DPDK:

cp / run / media / mmcblk0p2 / FSL-ls1043a-RDB-sdk.dtb.bak / run / media / mmcblk0p2 / FSL-ls1043a-RDB-sdk.dtb

reiniciar

Después de la configuración de red a modo de usuario, entonces, ¿cómo las usamos? TCP / UDP uso vosotros? No se preocupe si se utiliza TCP o UDP en un DPDK trasplante también es necesario DPDK la pila. fase de entrada se comienza a experimentar una DPDK contiene una rutina de prueba Capa 2 reenviarlo.

Capa de reenvío de topología de la red como se muestra a continuación:

Cerco león readme Shu OK1043A-C DPDK Ambient Experience

plataforma Uso Port2 y Port3 OK1043A-C (correspondiente FM1-mac3 y FM1-MAC4), y los datos entre LinuxHost OK1012A-C hacia adelante. LinuxHost y OK1012A-C que pueden sustituir a otros dispositivos de red.

Configuración OK1043A-C:

l2fwd-c 0xf -n 1 - -p 0xc -q 1 --no-mac-actualización

parámetros

explicación

-C

Usar 4-core Core 0xf máscara

-norte

Canales de memoria

-pag

Puerto máscara binaria uso 0xc 1100 port2 port3

-q

valores predeterminados de cada número núcleo cola a 1

--no-mac-actualización

Alternativamente MAC no convertida

Configuración OK1012A-C:

ifconfigeth0 192.168.1.200

tcpdump-i eth0 -vv -n -e

Configuración de Host de Linux:

ifconfigeth0 192.168.1.120

sudomodprobe pktgen.ko

echo "add_deviceeth0"> / proc / net / pktgen / kpktgend_0

echo "dst_mac6e: 56: 7d: 85: CE: 4d"> / proc / net / pktgen / eth0

echo "dst192.168.1.200"> / proc / net / pktgen / eth0

echo "pkt_size64"> / proc / net / pktgen / eth0

echo "count1000000"> / proc / net / pktgen / eth0

echo "Inicio"> / proc / net / pktgen / pgctrl

Dejamos que LinuxHost anfitrión para enviar un millón de paquetes de 64 bytes a cabo, prueba OK1043A-CDPDK capacidad de transmisión de estos paquetes.

Cerco león readme Shu OK1043A-C DPDK Ambient Experience

La consulta de un información de la impresora en serie OK1043A-C, encontramos DPDK tiene todos los paquetes recibidos enviados por completo. Al mismo tiempo con cuidado se dará cuenta de que cuando se utiliza el reenvío de datos DPDK, carga de la CPU ha sido alto, como lo ha sido en el sondeo de capa de aplicación, para ver si hay paquetes deben ser abordados.

fuente original: https://www.forlinx.com/article_view_267.html

Supongo que te gusta

Origin blog.51cto.com/14771158/2485451
Recomendado
Clasificación