net/mlx5: fix instruction hotspot on replenishing Rx buffer
On replenishing Rx buffers for vectorized Rx, mbuf->buf_addr isn't needed
to be accessed as it is static and easily calculated from the mbuf address.
Accessing the mbuf content causes unnecessary load stall and it is worsened
on ARM.
Fixes: 545b884b1d
("net/mlx5: fix buffer address posting in SSE Rx")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
This commit is contained in:
parent
c277b34c1b
commit
12d468a62b
@ -102,7 +102,10 @@ mlx5_rx_replenish_bulk_mbuf(struct mlx5_rxq_data *rxq, uint16_t n)
|
||||
return;
|
||||
}
|
||||
for (i = 0; i < n; ++i) {
|
||||
wq[i].addr = rte_cpu_to_be_64((uintptr_t)elts[i]->buf_addr +
|
||||
void *buf_addr = rte_mbuf_buf_addr(elts[i], rxq->mp);
|
||||
|
||||
assert(buf_addr == elts[i]->buf_addr);
|
||||
wq[i].addr = rte_cpu_to_be_64((uintptr_t)buf_addr +
|
||||
RTE_PKTMBUF_HEADROOM);
|
||||
/* If there's only one MR, no need to replace LKey in WQE. */
|
||||
if (unlikely(mlx5_mr_btree_len(&rxq->mr_ctrl.cache_bh) > 1))
|
||||
|
Loading…
Reference in New Issue
Block a user