MCPcopy Create free account
hub / github.com/F-Stack/f-stack / mlx5_mr_mb2mr

Function mlx5_mr_mb2mr

dpdk/drivers/common/mlx5/mlx5_common_mr.h:192–207  ·  view source on GitHub ↗

* Query LKey from a packet buffer. * * @param mr_ctrl * Pointer to per-queue MR control structure. * @param mbuf * Pointer to mbuf. * * @return * Searched LKey on success, UINT32_MAX on no match. */

Source from the content-addressed store, hash-verified

190 * Searched LKey on success, UINT32_MAX on no match.
191 */
192static __rte_always_inline uint32_t
193mlx5_mr_mb2mr(struct mlx5_mr_ctrl *mr_ctrl, struct rte_mbuf *mbuf)
194{
195 uint32_t lkey;
196
197 /* Check generation bit to see if there's any change on existing MRs. */
198 if (unlikely(*mr_ctrl->dev_gen_ptr != mr_ctrl->cur_gen))
199 mlx5_mr_flush_local_cache(mr_ctrl);
200 /* Linear search on MR cache array. */
201 lkey = mlx5_mr_lookup_lkey(mr_ctrl->cache, &mr_ctrl->mru,
202 MLX5_MR_CACHE_N, (uintptr_t)mbuf->buf_addr);
203 if (likely(lkey != UINT32_MAX))
204 return lkey;
205 /* Take slower bottom-half on miss. */
206 return mlx5_mr_mb2mr_bh(mr_ctrl, mbuf);
207}
208
209/* mlx5_common_mr.c */
210

Callers 8

mlx5_crypto_xts_klm_setFunction · 0.85
mlx5_tx_dseg_ptrFunction · 0.85
mlx5_tx_dseg_iptrFunction · 0.85
mlx5_compress_dseg_setFunction · 0.85
prep_oneFunction · 0.85
prep_regex_umr_wqe_setFunction · 0.85

Calls 3

mlx5_mr_lookup_lkeyFunction · 0.85
mlx5_mr_mb2mr_bhFunction · 0.85

Tested by

no test coverage detected