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

David Daney ddaney at caviumnetworks.com
Fri Nov 7 22:58:37 UTC 2014


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.daney at cavium.com>




More information about the devel mailing list