mlx4: fix available entries in Tx rings
The number of available entries in TX rings is taken before performing
completion, effectively making rings smaller than they are and causing
TX performance issues under load.
Fixes: 7fae69eeff
("mlx4: new poll mode driver")
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
This commit is contained in:
parent
ecbfdbad6e
commit
cacd65c8bb
@ -1306,7 +1306,6 @@ mlx4_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n)
|
||||
{
|
||||
struct txq *txq = (struct txq *)dpdk_txq;
|
||||
unsigned int elts_head = txq->elts_head;
|
||||
const unsigned int elts_tail = txq->elts_tail;
|
||||
const unsigned int elts_n = txq->elts_n;
|
||||
unsigned int elts_comp_cd = txq->elts_comp_cd;
|
||||
unsigned int elts_comp = 0;
|
||||
@ -1316,7 +1315,7 @@ mlx4_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n)
|
||||
|
||||
assert(elts_comp_cd != 0);
|
||||
txq_complete(txq);
|
||||
max = (elts_n - (elts_head - elts_tail));
|
||||
max = (elts_n - (elts_head - txq->elts_tail));
|
||||
if (max > elts_n)
|
||||
max -= elts_n;
|
||||
assert(max >= 1);
|
||||
|
Loading…
Reference in New Issue
Block a user