Hi,

On Tue, 22 Feb 2011 18:09:32 +0100
Patrick Lamaiziere <patf...@davenulle.org> wrote:
>| I'm using two ethernet cards Intel 1000/PRO quad ports (gigabit) on a
>| firewall (one fiber and one copper).
>| 
>| The problem is that we don't get more than ~320 Mbits/s of bandwith
>| beetween the internal networks and internet (gigabit).
>| 
>| As far I can see, on load there is a number of "Ierr" on the interface
>| connected to Internet (between 1% to 5%).
>| 
>| Also the interrupt rate on this card is around ~7500 (using systat). In
>| the em(4) driver, there is a limitation of the interrupt rate at 8000/s.
>| 
>| if_em.h
>| /*
>|  * MAX_INTS_PER_SEC (ITR - Interrupt Throttle Register)
>|  * The Interrupt Throttle Register (ITR) limits the delivery of
>| interrupts
>|  * to a reasonable rate by providing a guaranteed inter-interrupt delay
>|  * between interrupts asserted by the Ethernet controller.
>|  */
>| #define MAX_INTS_PER_SEC     8000
>| 
>| Do you think I can increase this value? The interrupt rate of the
>| machine is at max ~60% (top).

We've got same problems (on a routeur, not a firewall). Increasing
MAX_INTS_PER_SEC to 24000  increased bandwith and lowered packet loss.
Our cards are "Intel PRO/1000 (82576)" and "Intel PRO/1000 FP (82576)".

We still have Ierr (but lower count). I don't understand why we still get
errors with a 90+%Idle system.
I've made some calculations and for a 1Gbps link with 600 Bytes packets, we
have to process 208 334 pps. With a 40KB RX buffer on nic (40000/600=66
packets max in buffer) we only need 208334/66=3157 interrupts/s so 24000 and
even 8000 interrupts/s should be enough :-(

If someone have an explanation...

Manuel 

Reply via email to