[PATCH] staging: octeon-ethernet: drop multiple NAPI instances

Aaro Koskinen aaro.koskinen at iki.fi
Fri Nov 7 22:32:56 UTC 2014


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.

A.


More information about the devel mailing list