[ Thursday 11 June 2009, 15h46, Radu-Adrian Feurdean ] > > On Thu, 11 Jun 2009 14:53:26 +0200, "Arthur Fernandez" > <z...@toile-libre.org> said: > > > tout est dans la gestion des interrupts, il faut aussi utiliser de bons > > chipsets, et faire attention aux partages d'IRQ de la carte maman :) > > Presque aussi important que le CPU. > En realite, le CPU (avec la conf qui va bien, c'est a dire I/OAT DMA, kernel stateless) est autant utilise que pour le calcul des routes (la dessus CONFIG_IP_FIB_TRIE peut aider un peu, la duree de recherche des route devient stable) que pour la gestion des paquets, mais relativement peu pour autre chose.
D'ou l'interet d'utiliser du matos qui va supporter le RX polling, a la place de la gestion par interruption pour les paquets entrants. On decharge alors le CPU d'une grande partie de la charge d'interruption, au prix d'une latence minimum theorique superieure, mais pas mesurable en production :) Pour le nombre de coeurs, effectivement le puissance brute par coeur prime, le scheduler etait assez bon pour repartir le temps CPU, mais en SMP avoir un IO/APIC qui fonctionne bien a un interet: On peut ainsi le laisser repartir de lui meme les interruptions entre les CPU (smp_affinity). Autrement, et a defaut de le configurer a la main, un seul coeur est utilise pour les interruptions. On evitera aussi les materiels moisis avec IRQ partagees, histoire de gerer la repartition via les IRQ PCI, et pas les IRQ systemes. PS: Evidemment tout ca c'est pour du Linux 2.6, pour les *BSD il y a sans doute des mecanismes equivalents, mais je ne les connais pas. -- Nicolas Trecourt <ntreco...@frontier.fr> Administrateur systemes et reseaux IRC: irc://irc.freenode.net/~fosco psyc: psyc://psyc.wirefull.org/~fosco jabber: xmpp:fo...@xmpp.wirefull.org PGP Key fingerprint: BB18 54D5 2843 D23C 3069 CCED DEEE F150 B565 2199 Frontier Online - URL: http://www.frontier.fr
signature.asc
Description: Digital signature