Re: [PATCH 0/2] Get rid of ndo_xmit_flush
From: Eric Dumazet <hidden>
Date: 2014-08-27 13:24:04
On Wed, 2014-08-27 at 14:31 +0200, Hannes Frederic Sowa wrote:
One thing one should keep in mind is, that there must be a skb available to trigger the flush, maybe this will hurt us one day. Thinking more about it should we go with a coccinelle script and replace/extend ndo_start_xmit with an additional argument?
This will be a pain for backports and things like that. skb->xmit_more is a bit annoying, because it consumes one bit in all skbs, while it could be one byte per cpu as ndo_start_xmit() is called while BH are disabled. It also forces a cache line dirtying, that will hurt qdisc like HTB where skbs can be cooked/enqueued by remote cpus. Also, most drivers will never benefit from this new infra. Mellanox mlx4 uses the Blue Frame trick to avoid the iowrite() cost. I am afraid Jesper tests are not complete to truly have a picture of the extra costs, because he made sure no false sharing was possible (A single cpu does everything and keeps skb in its cache)