Re: Difficulties to get 1Gbps on be2net ethernet card
flat view
From: Jean-Michel Hautbois <hidden>
Date: 2012-05-31 06:54:35
2012/5/30 [off-list ref]:
quoted
-----Original Message----- From: <redacted> [mailto:<redacted>] On Behalf Of Jean-Michel Hautbois 2012/5/30 Jean-Michel Hautbois [off-list ref]: I used vmstat in order to see the differences between the two kernels. The main difference is the number of interrupts per second. I have an average of 87500 on 3.2 and 7500 on 2.6, 10 times lower ! I suspect the be2net driver to be the main cause, and I checkes the /proc/interrupts file in order to be sure. I have for eth1-tx on 2.6.26 about 2200 interrupts per second and 23000 on 3.2. BTW, it is named eth1-q0 on 3.2 (and tx and rx are the same IRQ) whereas there is eth1-rx0 and eth1-tx on 2.6.26.Yes, there is an issue with be2net interrupt mitigation in the recent code with RX and TX on the same Evt-Q (commit 10ef9ab4). The high interrupt rate happens when a TX blast is done while RX is relatively silent on a queue pair. Interrupt rate due to TX completions is not being mitigated. I have a fix and will send it out soon.. thanks, -Sathya
It seems this issue exist with mellanox mlx4 too... I have a bond between eth1 (be2net) and eth9 (mlx4_en) and I can switch from one to the other using ifenslave. Setting a queue of 4000 on be2net works well in my use case, when I switch to mlx4 based NIC which has a default queue len of 1000, I have dropped packets too (less than be2net, but about 30-50 per second). Setting a queue len of 4000 on mlx4 works too, but the number of interrupts is similar. The use case is the same : Lots of TX, no RX. JM