An HTML attachment was scrubbed...
URL:
http://listas.inf.utfsm.cl/pipermail/linux/attachments/20060518/b830e96a/attachment.html
From [EMAIL PROTECTED] Thu May 18 13:30:23 2006
From: [EMAIL PROTECTED] (Horst von Brand)
Date: Thu May 18 13:30:24 2006
Subject: Consulta para multiples tarjetas de red
In-Reply-To: Your message of "Thu, 18 May 2006 11:44:22 -0400."
<[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>
Miguel Oyarzo <[EMAIL PROTECTED]> wrote:
> At 00:46 18-05-2006, Horst von Brand wrote:
> >Miguel Oyarzo <[EMAIL PROTECTED]> wrote:
> >
> >[...]
> >
> >> >"socken des teufel" <[EMAIL PROTECTED]> dijo:
> >
> >[Reformateado para hacerlo comprensible, espero sin cambiar el sentido]
> >
> >> > > Desconosco como funciona exactamente, pero no creo que el sistema
> >> > > operativo tenga alguna priodidad sobre alguna irq mas que otra (a no
> >> > > ser
> >> > > lo hayan fijado a mano asi)
> >> > > Ademas el chipset de la system board es el encargado de balancear las
> >> > > irq de los dispositivos.
> >
> >> No creo que chipset (o el controlador de interrupciones) balancee nada,
> >> su unica funcion es encolar las peticiones y establecer prioridades del
> >> HW que hablara a la CPU.
> >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?
Eso es la tarea del APIC...
> 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.
No puedes balancear, claro ;-)
> >> La pregunta es si la IRQ asignada a cada tarjeta establece o no prioridad
> >> ante la CPU.
> >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.
Segun se de las discusiones de hardware en los libros sobre Linux, no.
> Talvez en las IRQs de uso general (como 9,10,11, 15) se deberia preguntar
> al controlador de interrupciones a quien se le da mayor prioridad
> (dependiendo del numero de interrupcion que use para llamar a la CPU)
Algunas arquitecturas lo hacen (i.e., mientras se atiende la IRQ N las >= N
tienen que esperar), pero el nucleo Linux solo deshabilita la IRQ N en la
CPU que la recibio, cualquiera de las otras puede interrumpir al handler (y
esa misma podria interrumpir a otra CPU).
> >> Creo que eso permitiria distruibuir mejor el rendimiento de un conjunto
> >> de placas en un mismo servidor, (la placa con mayor trafico no mantendria
> >> la atencion de la CPU tanto tiempo) podra ser efectivo esto?
> >No. Solo si las tarjetas estan saturadas podria hacer alguna diferencia.
> >Las tarjetas son /harto/ mas inteligentes de lo que pareces creer.
> Si... puede ser...
> quizas en rendimiento nomal no haria diferencia alguna...
Y en rendimiento "no normal" (red saturada) estan pensando en usar polling,
no interrupciones (no se si esta ya implementado, y para que tarjetas; es
importante a 1Gbps, y a 10Gbps sera indispensable...).
> 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?
En Ethernet (compartido), la red esta saturada cuando tienes algo de 70 a
80% de utilizacion. Con una red switcheada, podria ser mas (aunque me late
que alli se te satura el backbone del switch antes...)
Y, nuevamente: Los benchmarks "donde revienta" rara vez son relevantes; si
el tope que da es 120 y tu carga tipica 20 con puntas de 70, ni te afecta.
--
Dr. Horst H. von Brand User #22616 counter.li.org
Departamento de Informatica Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria +56 32 654239
Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513
From [EMAIL PROTECTED] Thu May 18 13:29:05 2006
From: [EMAIL PROTECTED] (Daniel Serpell)
Date: Thu May 18 13:56:17 2006
Subject: Consulta para multiples tarjetas de red
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>
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.