]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'bnxt_en-combined-rx-tx-channels'
authorDavid S. Miller <davem@davemloft.net>
Mon, 4 Jan 2016 20:54:41 +0000 (15:54 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Jan 2016 20:54:41 +0000 (15:54 -0500)
commit612e3d169b251ae6221e266b33dd05fcfecfd04f
tree0e25ec990a1faa4203d736eb27c581bdd314eb7b
parentdd02a3b4742b4ed00a03aeec9c345b8b75bde2f5
parentb84ef2061f1f05b1497374eb4fbd5fd2d7c698a8
Merge branch 'bnxt_en-combined-rx-tx-channels'

Michael Chan says:

====================
bnxt_en: Support combined and rx/tx channels.

The bnxt hardware uses a completion ring for rx and tx events.  The driver
has to process the completion ring entries sequentially for the events.
The current code only supports an rx/tx ring pair for each completion ring.
This patch series add support for using a dedicated completion ring for
rx only or tx only as an option configuarble using ethtool -L.

The benefits for using dedicated completion rings are:

1. A burst of rx packets can cause delay in processing tx events if the
completion ring is shared.  If tx queue is stopped by BQL, this can cause
delay in re-starting the tx queue.

2. A completion ring is sized according to the rx and tx ring size rounded
up to the nearest power of 2.  When the completion ring is shared, it is
sized by adding the rx and tx ring sizes and then rounded to the next power
of 2, often with a lot of wasted space.

3. Using dedicated completion ring, we can adjust the tx and rx coalescing
parameters independently for rx and tx.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>