On Mittwoch, 16. August 2017 09:39:00 CEST dan wrote:
Anyone done any performance testing over wired links? ie, if two ethernet ports are gigabit and are added to bat0, what kind of throughput is expected across these interfaces and how much CPU is needed to get up near wire-speed?
I can easily reach gigabit here between an i5-3230M (receiver; r8169) and an i7-6700K (sender; igb). I was able to reach 926 Mbits/sec in a single stream iperf 2.0.9+dfsg1-1 30 second test. Both ethernet devices were configured with an MTU of 1560. Both systems were idling most of the time (> 90% of time while also running things like xapian, akonadi, ...).
There are some ethernet chips which have offloading features which work for IP or similar layer 3 protocols. This layer 3 specific offloading will not work when batman-adv is added as a layer between the ethernet header and the IP header. I have even seen chips which then went completely slow and got only fast again after the offloading features were disabled in hardware (either using ethtool or by patching the driver).
And there is currently no special batman-adv support for the flow dissector [1] in the kernel. This could be also a reason why multiple flows are not distributed well to different cores when you enable RPS/XPS. It is not yet know whether this will actually be helpful but at least someone interested could do same research and implement a proof-of-concept patches for further testing.
Kind regards, Sven
[1] https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/net/...