stringtranslate.com

Nueva API

La nueva API (también conocida como NAPI ) es una interfaz para utilizar técnicas de mitigación de interrupciones para dispositivos de red en el núcleo de Linux . Este enfoque tiene como objetivo reducir la sobrecarga de la recepción de paquetes. La idea es posponer el procesamiento de mensajes entrantes hasta que haya una cantidad suficiente de ellos para que valga la pena procesarlos todos a la vez.

Motivación

Un método sencillo para implementar un controlador de red es interrumpir el núcleo mediante la emisión de una solicitud de interrupción (IRQ) para cada uno de los paquetes entrantes. Sin embargo, el mantenimiento de las IRQ es costoso en términos de recursos del procesador y tiempo. Por lo tanto, la implementación sencilla puede ser muy ineficiente en redes de alta velocidad, interrumpiendo constantemente el núcleo con miles de paquetes por segundo. Como resultado, el rendimiento general del sistema, así como el rendimiento de la red, pueden verse afectados.

El sondeo es una alternativa al procesamiento basado en interrupciones. El núcleo puede comprobar periódicamente la llegada de paquetes de red entrantes sin ser interrumpido, lo que elimina la sobrecarga del procesamiento de interrupciones. Sin embargo, es importante establecer una frecuencia de sondeo óptima. Un sondeo demasiado frecuente desperdicia recursos de la CPU al comprobar repetidamente si hay paquetes entrantes que aún no han llegado. Por otro lado, un sondeo demasiado infrecuente introduce latencia al reducir la reactividad del sistema a los paquetes entrantes y puede provocar la pérdida de paquetes si el búfer de paquetes entrantes se llena antes de ser procesado.

Como compromiso, el kernel de Linux utiliza el modo controlado por interrupciones de manera predeterminada y solo cambia al modo de sondeo cuando el flujo de paquetes entrantes excede un cierto umbral, conocido como el "peso" de la interfaz de red.

Conductores compatibles

Un controlador que utiliza la interfaz NAPI funcionará de la siguiente manera:

Ventajas

Historia

NAPI fue un esfuerzo de más de tres años de Alexey Kuznetsov, Jamal Hadi Salim y Robert Olsson. El esfuerzo inicial por incluir a NAPI se topó con la resistencia de algunos miembros de la comunidad, sin embargo, David Miller trabajó arduamente para garantizar la inclusión de NAPI.

Antes de su inclusión, se realizaron muchas pruebas en la red de la Universidad de Uppsala . De hecho, www.slu.se fue el primer sistema operativo basado en NAPI de producción y todavía funciona con enrutadores Bifrost/Linux basados ​​en NAPI. El generador de tráfico pktgen también nació en esa época. Pktgen se utilizó ampliamente para probar escenarios NAPI no inducidos por el tráfico del mundo real.

Referencias

Lectura adicional

Enlaces externos