[OpenWrt-Devel] Ethernet performance for transfers between VLANs (bcm47xx)

Rafał Miłecki zajec5 at gmail.com
Thu Aug 8 22:06:03 CEST 2013


I was doing some tests of ethernet performance on Broadcom's SoCs and
I may need your advise on that.

As you know transfers between separated VLANs aren't really nice for
the CPU. Linux has to receive packets, pass them through the firewall
and them send to the target VLAN. I'm aware we can't expect full speed
in that case, but I'm a little worried by the performance anyway.

I did some tests using "iperf" for various transfers.
1) Between two machines in the same VLAN: 710Mb/s
2) Between separated VLANs (WAN to LAN): 90Mb/s
3) Machine to router (iperf -s on OpenWrt): 180Mb/s

That 90Mb/s speed it pretty slow, there are Internet providers with a
faster connections in their offer. So I really would like to improve
that. I know Broadcom managed to get much faster transfers with their
firmware, so it's definitely do-able.

Do you have any suggestions on achieving that? I was doing above test
with some BCM4706 router, in "top" I noticed "sirq" eating 99% of the
CPU (similar report: https://dev.openwrt.org/ticket/7356).

Should I play with some profiler?
/proc/profile (and readprofile user space tool) doesn't support
profiling modules :(
I didn't play much time with oprofile yet, unfortunately it's new
profiling method doesn't support MIPS
(http://oprofile.sourceforge.net/doc/perf_events.html) - so I have to
play with legacy profiling method.

Anyway, maybe you have some suggestions that will help me focus my
efforts on the right direction?


More information about the openwrt-devel mailing list