[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAO_EM_nrb0M49YwU+gjL+bqT4V1rFj4z7DQ8juTYXgaoKet0mg@mail.gmail.com>
Date: Wed, 24 Aug 2016 18:29:49 -0700
From: Ed Swierk <eswierk@...portsystems.com>
To: linux-mips <linux-mips@...ux-mips.org>,
driverdev-devel <devel@...verdev.osuosl.org>,
netdev <netdev@...r.kernel.org>
Cc: Aaro Koskinen <aaro.koskinen@...ia.com>,
David Daney <ddaney@...iumnetworks.com>
Subject: Improving OCTEON II 10G Ethernet performance
I'm trying to migrate from the Octeon SDK to a vanilla Linux 4.4
kernel for a Cavium OCTEON II (CN6880) board running in 64-bit
little-endian mode. So far I've gotten most of the hardware features I
need working, including XAUI/RXAUI, USB, boot bus and I2C, with a
fairly small set of patches.
https://github.com/skyportsystems/linux/compare/master...octeon2
The biggest remaining hurdle is improving 10G Ethernet performance:
iperf -P 10 on the SDK kernel gets close to 10 Gbit/sec throughput,
while on my 4.4 kernel, it tops out around 1 Gbit/sec.
Comparing the octeon-ethernet driver in the SDK
(http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-contrib/tree/drivers/net/ethernet/octeon?h=apaliwal/octeon)
against the one in 4.4, the latter appears to utilize only a single
CPU core for the rx path. It's not clear to me if there is a similar
issue on the tx side, or other bottlenecks.
I started trying to port multi-CPU rx from the SDK octeon-ethernet
driver, but had trouble teasing out just the necessary bits without
following a maze of dependencies on unrelated functions. (Dragging
major parts of the SDK wholesale into 4.4 defeats the purpose of
switching to a vanilla kernel, and doesn't bring us closer to getting
octeon-ethernet out of staging.)
Has there been any work on the octeon-ethernet driver since this patch
set? https://www.linux-mips.org/archives/linux-mips/2015-08/msg00338.html
Any hints on what to pick out of the SDK code to improve 10G
performance would be appreciated.
--Ed
Powered by blists - more mailing lists