ixgbe: bulk free SKBs during TX completion cleanup cycle
authorJesper Dangaard Brouer <brouer@redhat.com>
Mon, 8 Feb 2016 12:15:09 +0000 (13:15 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Feb 2016 16:59:10 +0000 (11:59 -0500)
commita3a8749d34d8a5ac071c7ead792bd21ffe328aa0
tree7fdc4e1261b759cb4ba9ab362ae41d8639d9c55f
parent15fad714be86eab13e7568fecaf475b2a9730d3e
ixgbe: bulk free SKBs during TX completion cleanup cycle

There is an opportunity to bulk free SKBs during reclaiming of
resources after DMA transmit completes in ixgbe_clean_tx_irq.  Thus,
bulk freeing at this point does not introduce any added latency.

Simply use napi_consume_skb() which were recently introduced.  The
napi_budget parameter is needed by napi_consume_skb() to detect if it
is called from netpoll.

Benchmarking IPv4-forwarding, on CPU i7-4790K @4.2GHz (no turbo boost)
 Single CPU/flow numbers: before: 1982144 pps ->  after : 2064446 pps
 Improvement: +82302 pps, -20 nanosec, +4.1%
 (SLUB and GCC version 5.1.1 20150618 (Red Hat 5.1.1-4))

Joint work with Alexander Duyck.

Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c