GNU/Linux >> Tutoriels Linux >  >> Linux

Quels sont les avantages NAPI avant l'IRQ Coalesce ?

Commençons par aucune fusion de napi et d'interruption.

Le premier cas :livelock. Cela signifie que lorsque de nombreuses interruptions sont postées par le processus de serveur en continu, le processeur ne traite que les interruptions et n'autorise jamais un processus au niveau de l'utilisateur à s'exécuter et à traiter les requêtes. Pour cela, nous créons napi, qui le gère en mode hybride (interrupt + polling). Lorsqu'une interruption se produit, gérez-la et interrogez-la pendant un certain temps pour résoudre les demandes de sous-séquence.

Deuxième cas :optimisation. Avant de déclencher une interruption, un périphérique attend d'abord un peu avant de transmettre l'interruption au CPU. Pendant l'attente, d'autres demandes peuvent bientôt se terminer, et ainsi plusieurs interruptions peuvent être fusionnées en une seule livraison d'interruption, réduisant ainsi la surcharge du traitement des interruptions.

Pour conclure, il n'y a pas de conflit entre eux. Et ils sont destinés à des cas différents, bien que napi puisse également optimiser la surcharge du processeur.

Réf :Principes de conception de systèmes informatiques.


Je considère NAPI comme une forme de fusion d'interruptions. Je pense que votre question peut provenir d'un malentendu sur NAPI. Tout d'abord, les interruptions sont impliquées avec NAPI. De plus, l'interrogation de NAPI n'est en fait pas "en vain". Rappelez-vous, pour NAPI, l'idée est que le trafic à haut débit est en rafales. NAPI "démarre" uniquement après qu'une "interruption de paquet reçu" se soit produite.

Voici un bref aperçu de la façon dont NAPI est censé être utilisé :

Le noyau lance l'interruption "paquet reçu", qu'un pilote de périphérique réseau utilisant NAPI détecte. Le pilote de périphérique réseau désactive alors les interruptions liées à la réception de paquets et à l'aide de NAPI, indique au sous-système réseau Linux d'interroger le pilote de périphérique. La fonction d'interrogation est implémentée par le pilote de périphérique, est transmise au sous-système réseau et contient le gestionnaire de paquets du pilote de périphérique. Une fois que suffisamment de paquets ont été reçus ou qu'un délai d'attente a été atteint, les interruptions de réception de paquets sont réactivées et tout recommence.

Ainsi, NAPI n'est fondamentalement qu'une API centralisée dans le sous-système de réseau Linux pour prendre en charge la fusion des interruptions afin de réduire les situations de livelock de réception. NAPI offre aux développeurs de pilotes de périphériques un cadre propre pour la fusion des interruptions. NAPI ne s'exécute pas tout le temps, mais ne se produit que lorsque le trafic est réellement reçu, ce qui en fait essentiellement un schéma de fusion d'interruptions... Du moins dans mon livre.

Remarque :Tout cela dans le contexte d'un pilote de périphérique réseau utilisant NAPI, mais en fait NAPI peut être utilisé pour tout type d'interruption. C'est également l'un des avantages de NAPI.

S'il y a des erreurs dans ma compréhension, n'hésitez pas à les signaler !


Linux
  1. Debian vs Ubuntu :quelles sont les différences ?

  2. Routeur pfSense vs Netgear :quelles sont les principales différences ?

  3. Fedora vs Ubuntu :quelles sont les principales différences ?

  4. Quels sont les avantages de CloudLinux ?

  5. Quels sont les types de serveurs DNS

Cassandra vs MongoDB - Quelles sont les différences ?

Terraform vs Kubernetes :quelles sont les différences

Qu'est-ce qu'Intel SGX et quels en sont les avantages ?

useradd vs adduser :quelles sont les différences ?

platform.linux_distribution() obsolète - quelles sont les alternatives ?

Quels sont les avantages du gestionnaire de volumes logiques