Lines Matching refs:txq_obj
1123 mlx5_txq_release_devx_sq_resources(struct mlx5_txq_obj *txq_obj) in mlx5_txq_release_devx_sq_resources() argument
1125 if (txq_obj->sq_devx) { in mlx5_txq_release_devx_sq_resources()
1126 claim_zero(mlx5_devx_cmd_destroy(txq_obj->sq_devx)); in mlx5_txq_release_devx_sq_resources()
1127 txq_obj->sq_devx = NULL; in mlx5_txq_release_devx_sq_resources()
1129 if (txq_obj->sq_umem) { in mlx5_txq_release_devx_sq_resources()
1130 claim_zero(mlx5_glue->devx_umem_dereg(txq_obj->sq_umem)); in mlx5_txq_release_devx_sq_resources()
1131 txq_obj->sq_umem = NULL; in mlx5_txq_release_devx_sq_resources()
1133 if (txq_obj->sq_buf) { in mlx5_txq_release_devx_sq_resources()
1134 mlx5_free(txq_obj->sq_buf); in mlx5_txq_release_devx_sq_resources()
1135 txq_obj->sq_buf = NULL; in mlx5_txq_release_devx_sq_resources()
1137 if (txq_obj->sq_dbrec_page) { in mlx5_txq_release_devx_sq_resources()
1138 claim_zero(mlx5_release_dbr(&txq_obj->txq_ctrl->priv->dbrpgs, in mlx5_txq_release_devx_sq_resources()
1140 (txq_obj->sq_dbrec_page->umem), in mlx5_txq_release_devx_sq_resources()
1141 txq_obj->sq_dbrec_offset)); in mlx5_txq_release_devx_sq_resources()
1142 txq_obj->sq_dbrec_page = NULL; in mlx5_txq_release_devx_sq_resources()
1153 mlx5_txq_release_devx_cq_resources(struct mlx5_txq_obj *txq_obj) in mlx5_txq_release_devx_cq_resources() argument
1155 if (txq_obj->cq_devx) in mlx5_txq_release_devx_cq_resources()
1156 claim_zero(mlx5_devx_cmd_destroy(txq_obj->cq_devx)); in mlx5_txq_release_devx_cq_resources()
1157 if (txq_obj->cq_umem) in mlx5_txq_release_devx_cq_resources()
1158 claim_zero(mlx5_glue->devx_umem_dereg(txq_obj->cq_umem)); in mlx5_txq_release_devx_cq_resources()
1159 if (txq_obj->cq_buf) in mlx5_txq_release_devx_cq_resources()
1160 mlx5_free(txq_obj->cq_buf); in mlx5_txq_release_devx_cq_resources()
1161 if (txq_obj->cq_dbrec_page) in mlx5_txq_release_devx_cq_resources()
1162 claim_zero(mlx5_release_dbr(&txq_obj->txq_ctrl->priv->dbrpgs, in mlx5_txq_release_devx_cq_resources()
1164 (txq_obj->cq_dbrec_page->umem), in mlx5_txq_release_devx_cq_resources()
1165 txq_obj->cq_dbrec_offset)); in mlx5_txq_release_devx_cq_resources()
1175 mlx5_txq_release_devx_resources(struct mlx5_txq_obj *txq_obj) in mlx5_txq_release_devx_resources() argument
1177 mlx5_txq_release_devx_sq_resources(txq_obj); in mlx5_txq_release_devx_resources()
1178 mlx5_txq_release_devx_cq_resources(txq_obj); in mlx5_txq_release_devx_resources()
1199 struct mlx5_txq_obj *txq_obj = txq_ctrl->obj; in mlx5_txq_create_devx_cq_resources() local
1209 MLX5_ASSERT(txq_obj); in mlx5_txq_create_devx_cq_resources()
1234 txq_obj->cq_buf = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, in mlx5_txq_create_devx_cq_resources()
1238 if (!txq_obj->cq_buf) { in mlx5_txq_create_devx_cq_resources()
1246 txq_obj->cq_umem = mlx5_glue->devx_umem_reg(priv->sh->ctx, in mlx5_txq_create_devx_cq_resources()
1247 (void *)txq_obj->cq_buf, in mlx5_txq_create_devx_cq_resources()
1250 if (!txq_obj->cq_umem) { in mlx5_txq_create_devx_cq_resources()
1258 txq_obj->cq_dbrec_offset = mlx5_get_dbr(priv->sh->ctx, in mlx5_txq_create_devx_cq_resources()
1260 &txq_obj->cq_dbrec_page); in mlx5_txq_create_devx_cq_resources()
1261 if (txq_obj->cq_dbrec_offset < 0) { in mlx5_txq_create_devx_cq_resources()
1271 cq_attr.q_umem_offset = (uintptr_t)txq_obj->cq_buf % page_size; in mlx5_txq_create_devx_cq_resources()
1272 cq_attr.q_umem_id = mlx5_os_get_umem_id(txq_obj->cq_umem); in mlx5_txq_create_devx_cq_resources()
1274 cq_attr.db_umem_offset = txq_obj->cq_dbrec_offset; in mlx5_txq_create_devx_cq_resources()
1275 cq_attr.db_umem_id = mlx5_os_get_umem_id(txq_obj->cq_dbrec_page->umem); in mlx5_txq_create_devx_cq_resources()
1279 txq_obj->cq_devx = mlx5_devx_cmd_create_cq(priv->sh->ctx, &cq_attr); in mlx5_txq_create_devx_cq_resources()
1280 if (!txq_obj->cq_devx) { in mlx5_txq_create_devx_cq_resources()
1287 cqe = (struct mlx5_cqe *)txq_obj->cq_buf; in mlx5_txq_create_devx_cq_resources()
1295 mlx5_txq_release_devx_cq_resources(txq_obj); in mlx5_txq_create_devx_cq_resources()
1318 struct mlx5_txq_obj *txq_obj = txq_ctrl->obj; in mlx5_txq_create_devx_sq_resources() local
1325 MLX5_ASSERT(txq_obj); in mlx5_txq_create_devx_sq_resources()
1334 txq_obj->sq_buf = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, in mlx5_txq_create_devx_sq_resources()
1337 if (!txq_obj->sq_buf) { in mlx5_txq_create_devx_sq_resources()
1345 txq_obj->sq_umem = mlx5_glue->devx_umem_reg in mlx5_txq_create_devx_sq_resources()
1347 (void *)txq_obj->sq_buf, in mlx5_txq_create_devx_sq_resources()
1350 if (!txq_obj->sq_umem) { in mlx5_txq_create_devx_sq_resources()
1358 txq_obj->sq_dbrec_offset = mlx5_get_dbr(priv->sh->ctx, in mlx5_txq_create_devx_sq_resources()
1360 &txq_obj->sq_dbrec_page); in mlx5_txq_create_devx_sq_resources()
1361 if (txq_obj->sq_dbrec_offset < 0) { in mlx5_txq_create_devx_sq_resources()
1369 sq_attr.cqn = txq_obj->cq_devx->id; in mlx5_txq_create_devx_sq_resources()
1381 sq_attr.wq_attr.dbr_addr = txq_obj->sq_dbrec_offset; in mlx5_txq_create_devx_sq_resources()
1383 mlx5_os_get_umem_id(txq_obj->sq_dbrec_page->umem); in mlx5_txq_create_devx_sq_resources()
1385 sq_attr.wq_attr.wq_umem_id = mlx5_os_get_umem_id(txq_obj->sq_umem); in mlx5_txq_create_devx_sq_resources()
1386 sq_attr.wq_attr.wq_umem_offset = (uintptr_t)txq_obj->sq_buf % page_size; in mlx5_txq_create_devx_sq_resources()
1388 txq_obj->sq_devx = mlx5_devx_cmd_create_sq(priv->sh->ctx, &sq_attr); in mlx5_txq_create_devx_sq_resources()
1389 if (!txq_obj->sq_devx) { in mlx5_txq_create_devx_sq_resources()
1398 mlx5_txq_release_devx_sq_resources(txq_obj); in mlx5_txq_create_devx_sq_resources()
1432 struct mlx5_txq_obj *txq_obj = txq_ctrl->obj; in mlx5_txq_devx_obj_new() local
1439 MLX5_ASSERT(txq_obj); in mlx5_txq_devx_obj_new()
1440 txq_obj->txq_ctrl = txq_ctrl; in mlx5_txq_devx_obj_new()
1441 txq_obj->dev = dev; in mlx5_txq_devx_obj_new()
1450 txq_data->cqes = (volatile struct mlx5_cqe *)txq_obj->cq_buf; in mlx5_txq_devx_obj_new()
1453 txq_data->cq_db = (volatile uint32_t *)(txq_obj->cq_dbrec_page->dbrs + in mlx5_txq_devx_obj_new()
1454 txq_obj->cq_dbrec_offset); in mlx5_txq_devx_obj_new()
1466 txq_data->wqes = (struct mlx5_wqe *)txq_obj->sq_buf; in mlx5_txq_devx_obj_new()
1473 (txq_obj->sq_dbrec_page->dbrs + in mlx5_txq_devx_obj_new()
1474 txq_obj->sq_dbrec_offset + in mlx5_txq_devx_obj_new()
1477 txq_data->qp_num_8s = txq_obj->sq_devx->id << 8; in mlx5_txq_devx_obj_new()
1479 ret = mlx5_devx_modify_sq(txq_obj, MLX5_TXQ_MOD_RST2RDY, 0); in mlx5_txq_devx_obj_new()
1507 mlx5_txq_release_devx_resources(txq_obj); in mlx5_txq_devx_obj_new()
1520 mlx5_txq_devx_obj_release(struct mlx5_txq_obj *txq_obj) in mlx5_txq_devx_obj_release() argument
1522 MLX5_ASSERT(txq_obj); in mlx5_txq_devx_obj_release()
1523 if (txq_obj->txq_ctrl->type == MLX5_TXQ_TYPE_HAIRPIN) { in mlx5_txq_devx_obj_release()
1524 if (txq_obj->tis) in mlx5_txq_devx_obj_release()
1525 claim_zero(mlx5_devx_cmd_destroy(txq_obj->tis)); in mlx5_txq_devx_obj_release()
1528 mlx5_txq_release_devx_resources(txq_obj); in mlx5_txq_devx_obj_release()