Lines Matching refs:sq

96 	return get_wqe(qp, qp->sq.offset + (n << MLX5_IB_SQ_STRIDE));  in mlx5_get_send_wqe()
121 struct mlx5_ib_wq *wq = send ? &qp->sq : &qp->rq; in mlx5_ib_read_user_wqe()
352 qp->sq.wqe_cnt = wq_size / MLX5_SEND_WQE_BB; in calc_sq_size()
353 if (qp->sq.wqe_cnt > (1 << MLX5_CAP_GEN(dev->mdev, log_max_qp_sz))) { in calc_sq_size()
355 qp->sq.wqe_cnt, in calc_sq_size()
359 qp->sq.wqe_shift = ilog2(MLX5_SEND_WQE_BB); in calc_sq_size()
360 qp->sq.max_gs = attr->cap.max_send_sge; in calc_sq_size()
361 qp->sq.max_post = wq_size / wqe_size; in calc_sq_size()
362 attr->cap.max_send_wr = qp->sq.max_post; in calc_sq_size()
371 int desc_sz = 1 << qp->sq.wqe_shift; in set_user_buf_size()
385 qp->sq.wqe_cnt = ucmd->sq_wqe_count; in set_user_buf_size()
387 if (qp->sq.wqe_cnt > (1 << MLX5_CAP_GEN(dev->mdev, log_max_qp_sz))) { in set_user_buf_size()
389 qp->sq.wqe_cnt, in set_user_buf_size()
395 (qp->sq.wqe_cnt << 6); in set_user_buf_size()
638 qp->sq.wqe_shift = ilog2(MLX5_SEND_WQE_BB); in create_user_qp()
639 qp->sq.offset = qp->rq.wqe_cnt << qp->rq.wqe_shift; in create_user_qp()
760 qp->sq.offset = qp->rq.wqe_cnt << qp->rq.wqe_shift; in create_kernel_qp()
769 qp->sq.qend = mlx5_get_send_wqe(qp, qp->sq.wqe_cnt); in create_kernel_qp()
791 qp->sq.wrid = kmalloc(qp->sq.wqe_cnt * sizeof(*qp->sq.wrid), GFP_KERNEL); in create_kernel_qp()
792 qp->sq.wr_data = kmalloc(qp->sq.wqe_cnt * sizeof(*qp->sq.wr_data), GFP_KERNEL); in create_kernel_qp()
794 qp->sq.w_list = kmalloc(qp->sq.wqe_cnt * sizeof(*qp->sq.w_list), GFP_KERNEL); in create_kernel_qp()
795 qp->sq.wqe_head = kmalloc(qp->sq.wqe_cnt * sizeof(*qp->sq.wqe_head), GFP_KERNEL); in create_kernel_qp()
797 if (!qp->sq.wrid || !qp->sq.wr_data || !qp->rq.wrid || in create_kernel_qp()
798 !qp->sq.w_list || !qp->sq.wqe_head) { in create_kernel_qp()
808 kfree(qp->sq.wqe_head); in create_kernel_qp()
809 kfree(qp->sq.w_list); in create_kernel_qp()
810 kfree(qp->sq.wrid); in create_kernel_qp()
811 kfree(qp->sq.wr_data); in create_kernel_qp()
828 kfree(qp->sq.wqe_head); in destroy_qp_kernel()
829 kfree(qp->sq.w_list); in destroy_qp_kernel()
830 kfree(qp->sq.wrid); in destroy_qp_kernel()
831 kfree(qp->sq.wr_data); in destroy_qp_kernel()
871 spin_lock_init(&qp->sq.lock); in create_qp_common()
984 if (qp->sq.wqe_cnt) in create_qp_common()
985 in->ctx.sq_crq_size |= cpu_to_be16(ilog2(qp->sq.wqe_cnt) << 11); in create_qp_common()
1747 qp->sq.head = 0; in __mlx5_ib_modify_qp()
1748 qp->sq.tail = 0; in __mlx5_ib_modify_qp()
1749 qp->sq.cur_post = 0; in __mlx5_ib_modify_qp()
1750 qp->sq.last_poll = 0; in __mlx5_ib_modify_qp()
2082 void *qend = qp->sq.qend; in set_data_inl_seg()
2309 if (unlikely((*seg == qp->sq.qend))) in set_sig_data_segment()
2319 if (unlikely((*seg == qp->sq.qend))) in set_sig_data_segment()
2390 if (unlikely((*seg == qp->sq.qend))) in set_sig_umr_wr()
2396 if (unlikely((*seg == qp->sq.qend))) in set_sig_umr_wr()
2449 if (unlikely((*seg == qp->sq.qend))) in set_reg_wr()
2455 if (unlikely((*seg == qp->sq.qend))) in set_reg_wr()
2470 if (unlikely((*seg == qp->sq.qend))) in set_linv_wr()
2475 if (unlikely((*seg == qp->sq.qend))) in set_linv_wr()
2489 tidx = (tidx + 1) & (qp->sq.wqe_cnt - 1); in dump_wqe()
2512 if (unlikely(src == qp->sq.qend)) in mlx5_bf_copy()
2541 if (unlikely(mlx5_wq_overflow(&qp->sq, nreq, qp->ibqp.send_cq))) { in begin_wqe()
2546 *idx = qp->sq.cur_post & (qp->sq.wqe_cnt - 1); in begin_wqe()
2571 ctrl->opmod_idx_opcode = cpu_to_be32(((u32)(qp->sq.cur_post) << 8) | in finish_wqe()
2579 qp->sq.wrid[idx] = wr_id; in finish_wqe()
2580 qp->sq.w_list[idx].opcode = mlx5_opcode; in finish_wqe()
2581 qp->sq.wqe_head[idx] = qp->sq.head + nreq; in finish_wqe()
2582 qp->sq.cur_post += DIV_ROUND_UP(size * 16, MLX5_SEND_WQE_BB); in finish_wqe()
2583 qp->sq.w_list[idx].next = qp->sq.cur_post; in finish_wqe()
2598 void *qend = qp->sq.qend; in mlx5_ib_post_send()
2610 spin_lock_irqsave(&qp->sq.lock, flags); in mlx5_ib_post_send()
2622 if (unlikely(num_sge > qp->sq.max_gs)) { in mlx5_ib_post_send()
2664 qp->sq.wr_data[idx] = IB_WR_LOCAL_INV; in mlx5_ib_post_send()
2672 qp->sq.wr_data[idx] = IB_WR_REG_MR; in mlx5_ib_post_send()
2683 qp->sq.wr_data[idx] = IB_WR_REG_SIG_MR; in mlx5_ib_post_send()
2785 qp->sq.wr_data[idx] = MLX5_IB_WR_UMR; in mlx5_ib_post_send()
2839 qp->sq.head += nreq; in mlx5_ib_post_send()
2846 qp->db.db[MLX5_SND_DBR] = cpu_to_be32(qp->sq.cur_post); in mlx5_ib_post_send()
2876 spin_unlock_irqrestore(&qp->sq.lock, flags); in mlx5_ib_post_send()
3095 qp_attr->cap.max_send_wr = qp->sq.wqe_cnt; in mlx5_ib_query_qp()
3096 qp_attr->cap.max_send_sge = qp->sq.max_gs; in mlx5_ib_query_qp()