On 17/11/2015 15:57, Eric Dumazet wrote:
> Instead of having to implement complex ndo_busy_poll() method,
> drivers can simply rely on NAPI poll logic.

I really like where you are going with this series.

...

> We could go one step further, and make busy polling
> available for all NAPI drivers, but this would require
> that all netif_napi_del() calls are done in process context
> so that we can call synchronize_rcu().
> Full audit would be required.
> 
> Before this is done, a driver still needs to call :
> 
> - skb_mark_napi_id() for each skb provided to the stack, although we can
>   easily do this directly in core networking stack in a future patch.
> 
> - napi_hash_add() and napi_hash_del() to allocate/free a napi_id per napi.
> 
> - Make sure RCU grace period is respected after napi_hash_del() before
>   memory containing napi structure is freed.

Can we move all of these into the NAPI infrastructure?
Maybe hash add/del can be inside netif_napi_add/del.
Some way to force the right RCU behavior, and busy polling is
completely driver-agnostic, which IMHO outweighs the small gains
you can have by micro-optimizing ndo_busy_poll.

On another note, any thoughts about unifying poll_controller with
regular poll?

cheers,
Eliezer

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to