Consulta para multiples tarjetas de red

Daniel Serpell daniel_serpell en yahoo.com
Jue Mayo 18 13:29:05 CLT 2006


Hola!

El Thu, May 18, 2006 at 11:44:22AM -0400, Miguel Oyarzo escribio:
> At 00:46 18-05-2006, Horst von Brand wrote:
> >
> >Balancean la atencion de las IRQs de parte de las CPUs.
> 
> Una controladora  de interrupciones balanceando IRQs?  
> algo asi como funcionan las APIC en sistemas SMP? 
> 
> Pense que ese balanceo era solo para systemas multiprocesadores. Me pregunto que 
> sentido tiene balancear IRQs con un solo procesador. No digo que no, pero
> me suena raro.

Existen dos mundos: el mundo "PC-AT", con si controlador de
interrupciones y simples prioridades numéricas, ya en el pasado,
y el mundo moderno, donde las interrupciones se manejan por el IO-APIC.

Todas las CPU's actuales tienen un APIC *interno*, que maneja el
ruteo de las interrupciones. Este encola las peticiones de manera
"inteligente".

En mi PC, tipeando:

~$ cat /proc/interrupts
           CPU0
  0:  873943055    IO-APIC-edge  timer
  1:     265597    IO-APIC-edge  i8042
  7:          2    IO-APIC-edge  parport0
  8:          4    IO-APIC-edge  rtc
  9:          0   IO-APIC-level  acpi
 12:    5128502    IO-APIC-edge  i8042
 14:    3813439    IO-APIC-edge  ide0
 15:    2616562    IO-APIC-edge  ide1
177:          0   IO-APIC-level  uhci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:usb4, ehci_hcd:usb5
185:   43536492   IO-APIC-level  eth0
193:      68658   IO-APIC-level  VIA8237
NMI:          0
LOC:  873968639
ERR:          0
MIS:          0

Todas las interrupciones están manejadas por el IO-APIC, el que se
comunica con el APIC local de la CPU.

Si un sistema tiene varios IO-APIC (usual en servidores grandes),
cada IO-APIC tiene una prioridad de acceso a la CPU, por lo que
se atienden primero las interrupciones del IO-APIC de mayor
prioridad. El IO-APIC notifica las interrupciones con cuatro
niveles de prioridad distintos, asignados según la table de ruteo.

Una vez que las interrupciones son notificadas al APIC local, este
encola las peticiones en cada una de las cuatro colas, por órden de
llegada, la que llegó primero se atiende primero, y primero todas
las de la cola de mayor prioridad. La cola es de tamaño fijo, por
lo que si llegan muchas interrupciones se pueden perder.

En Linux, las interrupciones de los dispositivos PCI se encolan
todas en la misma prioridad, por lo que se atenderán por órden
extrícto de llegada.

> >
> >No.
> 
> No?  es decir, el reloj (irq0) tiene la misma prioridad que el puerto paralelo (irq7) ?
> Pienso que el numero de la IRQ si tiene que ver con la prioridad  ante la CPU.

Como se ve antes, no, actualmente no.

[...]
> 
> pero como saber si superamos cierto nivel de saturacion? 
> No creo que sea por que estamos cerca del limite del los 10/100 Mbps o si?

Las tarjetas más tontas generan una interrupción por paquete recibido
(o si el paquete es muy grande, varias), por lo más simple para saturar
el controlador es conectar unas cuatro tarjetas "ne2000" y hacerles
flood-ping desde muchos computadores.

Buenas tarjetas de red pueden manejar varios paquetes con una sóla
interrupción.

    Daniel.



Más información sobre la lista de distribución Linux