On 11/07/2014 02:32 PM, Aaro Koskinen wrote:
Hi,

On Fri, Nov 07, 2014 at 01:17:23PM -0800, David Daney wrote:
On 11/07/2014 12:44 PM, Aaro Koskinen wrote:
Octeon Ethernet driver is currently trying to wake up multiple
CPU cores for parallel NAPI processing when needed, to cope
with the fact that all network interfaces are handled through
the same receive queue processed by a single core/interrupt
(see http://marc.info/?l=linux-kernel&m=137209784914565&w=2).

This partially overlaps with generic RPS functionality.
Commit a6a39a7fcff5 ("staging: octeon-ethernet: disable load balance
for receiving packet when CONFIG_RPS is enabled") already disabled this
when RPS is enabled. Let's delete this code altogether as it has issues
like packet reordering and potential problems with CPU offlining/onlining.

There are packet ordering issues with the current code, it does however give
fairly high packet forwarding rates.  Probably better than with RPS.

So removing this may decrease performance.

IMHO scheduling work on other CPUs using IPIs does not really belong
into a network driver. If there is major benefit over RPS then some real
numbers should be given. If no real data is available, we should assume
the generic framework is good enough.

My goal is to get this driver into the kernel from staging,
rather than out. This means we need to make it more general purpose
and make it look and behave like a Linux driver, and possibly accepting
some performance loss for some specific use cases.


Yes, we want to move it out too. Thanks for working on it. I just wanted to make the issues known.

You can add:

Acked-By: David Daney <david.da...@cavium.com>


_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to