Hello Rafal,

Le jeudi 8 août 2013 22:06:03 Rafał Miłecki a écrit :
> Hey,
> 
> 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

So that case is just switching; nothing goes to the CPU port

> 2) Between separated VLANs (WAN to LAN): 90Mb/s

Are the WAN and LAN interface two different physical interfaces at the SoC 
level? If so, both the switch is involved to untag the frames and then do some 
routing in software

> 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).

ksoftirqd is the kernel thread responsible for servicing software IRQs which 
is the context in which Ethernet frames are processe for the RX path, what 
this means here is:

- you are CPU bound; the hardware might be moving packet faster but software 
cannot keep up
- the NAPI implementation (if existing in the driver) might need some 
tweaking, in particular I see no likely(__napi_schedule_prep) for instance

> 
> 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.

perf works just fine on MIPS, I am using it on a regular basis, oprofile does 
as 
well, although I have not used it that much.

> 
> Anyway, maybe you have some suggestions that will help me focus my
> efforts on the right direction?
-- 
Florian
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to