net/mlx5: fix memory region cache last index
In case Memory Region cache is full, the new mempool will be inserted in the last index of the array. Update the last entry being hit to reflect it. Fixes: b0b093845793 ("net/mlx5: use buffer address for LKEY search") Cc: stable@dpdk.org Signed-off-by: Xueming Li <xuemingl@mellanox.com> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
This commit is contained in:
parent
bb6883120a
commit
627cbfad1c
@ -567,7 +567,6 @@ mlx5_tx_mb2mr(struct mlx5_txq_data *txq, struct rte_mbuf *mb)
|
||||
return txq->mp2mr[i]->lkey;
|
||||
}
|
||||
}
|
||||
txq->mr_cache_idx = 0;
|
||||
mr = mlx5_txq_mp2mr_reg(txq, mlx5_tx_mb2mp(mb), i);
|
||||
/*
|
||||
* Request the reference to use in this queue, the original one is
|
||||
@ -575,6 +574,7 @@ mlx5_tx_mb2mr(struct mlx5_txq_data *txq, struct rte_mbuf *mb)
|
||||
*/
|
||||
if (mr) {
|
||||
rte_atomic32_inc(&mr->refcnt);
|
||||
txq->mr_cache_idx = i >= RTE_DIM(txq->mp2mr) ? i - 1 : i;
|
||||
return mr->lkey;
|
||||
} else {
|
||||
struct rte_mempool *mp = mlx5_tx_mb2mp(mb);
|
||||
|
Loading…
x
Reference in New Issue
Block a user