Lines Matching refs:sq
101 return get_wqe(qp, qp->sq.offset + (n << MLX5_IB_SQ_STRIDE)); in mlx5_get_send_wqe()
126 struct mlx5_ib_wq *wq = send ? &qp->sq : &qp->rq; in mlx5_ib_read_user_wqe()
360 qp->sq.wqe_cnt = wq_size / MLX5_SEND_WQE_BB; in calc_sq_size()
361 if (qp->sq.wqe_cnt > gen->max_wqes) { in calc_sq_size()
363 qp->sq.wqe_cnt, gen->max_wqes); in calc_sq_size()
366 qp->sq.wqe_shift = ilog2(MLX5_SEND_WQE_BB); in calc_sq_size()
367 qp->sq.max_gs = attr->cap.max_send_sge; in calc_sq_size()
368 qp->sq.max_post = wq_size / wqe_size; in calc_sq_size()
369 attr->cap.max_send_wr = qp->sq.max_post; in calc_sq_size()
379 int desc_sz = 1 << qp->sq.wqe_shift; in set_user_buf_size()
394 qp->sq.wqe_cnt = ucmd->sq_wqe_count; in set_user_buf_size()
396 if (qp->sq.wqe_cnt > gen->max_wqes) { in set_user_buf_size()
398 qp->sq.wqe_cnt, gen->max_wqes); in set_user_buf_size()
403 (qp->sq.wqe_cnt << 6); in set_user_buf_size()
646 qp->sq.wqe_shift = ilog2(MLX5_SEND_WQE_BB); in create_user_qp()
647 qp->sq.offset = qp->rq.wqe_cnt << qp->rq.wqe_shift; in create_user_qp()
768 qp->sq.offset = qp->rq.wqe_cnt << qp->rq.wqe_shift; in create_kernel_qp()
777 qp->sq.qend = mlx5_get_send_wqe(qp, qp->sq.wqe_cnt); in create_kernel_qp()
799 qp->sq.wrid = kmalloc(qp->sq.wqe_cnt * sizeof(*qp->sq.wrid), GFP_KERNEL); in create_kernel_qp()
800 qp->sq.wr_data = kmalloc(qp->sq.wqe_cnt * sizeof(*qp->sq.wr_data), GFP_KERNEL); in create_kernel_qp()
802 qp->sq.w_list = kmalloc(qp->sq.wqe_cnt * sizeof(*qp->sq.w_list), GFP_KERNEL); in create_kernel_qp()
803 qp->sq.wqe_head = kmalloc(qp->sq.wqe_cnt * sizeof(*qp->sq.wqe_head), GFP_KERNEL); in create_kernel_qp()
805 if (!qp->sq.wrid || !qp->sq.wr_data || !qp->rq.wrid || in create_kernel_qp()
806 !qp->sq.w_list || !qp->sq.wqe_head) { in create_kernel_qp()
816 kfree(qp->sq.wqe_head); in create_kernel_qp()
817 kfree(qp->sq.w_list); in create_kernel_qp()
818 kfree(qp->sq.wrid); in create_kernel_qp()
819 kfree(qp->sq.wr_data); in create_kernel_qp()
836 kfree(qp->sq.wqe_head); in destroy_qp_kernel()
837 kfree(qp->sq.w_list); in destroy_qp_kernel()
838 kfree(qp->sq.wrid); in destroy_qp_kernel()
839 kfree(qp->sq.wr_data); in destroy_qp_kernel()
880 spin_lock_init(&qp->sq.lock); in create_qp_common()
993 if (qp->sq.wqe_cnt) in create_qp_common()
994 in->ctx.sq_crq_size |= cpu_to_be16(ilog2(qp->sq.wqe_cnt) << 11); in create_qp_common()
1761 qp->sq.head = 0; in __mlx5_ib_modify_qp()
1762 qp->sq.tail = 0; in __mlx5_ib_modify_qp()
1763 qp->sq.cur_post = 0; in __mlx5_ib_modify_qp()
1764 qp->sq.last_poll = 0; in __mlx5_ib_modify_qp()
2097 void *qend = qp->sq.qend; in set_data_inl_seg()
2324 if (unlikely((*seg == qp->sq.qend))) in set_sig_data_segment()
2334 if (unlikely((*seg == qp->sq.qend))) in set_sig_data_segment()
2405 if (unlikely((*seg == qp->sq.qend))) in set_sig_umr_wr()
2411 if (unlikely((*seg == qp->sq.qend))) in set_sig_umr_wr()
2461 if (unlikely((*seg == qp->sq.qend))) in set_frwr_li_wr()
2466 if (unlikely((*seg == qp->sq.qend))) in set_frwr_li_wr()
2490 tidx = (tidx + 1) & (qp->sq.wqe_cnt - 1); in dump_wqe()
2513 if (unlikely(src == qp->sq.qend)) in mlx5_bf_copy()
2542 if (unlikely(mlx5_wq_overflow(&qp->sq, nreq, qp->ibqp.send_cq))) { in begin_wqe()
2547 *idx = qp->sq.cur_post & (qp->sq.wqe_cnt - 1); in begin_wqe()
2572 ctrl->opmod_idx_opcode = cpu_to_be32(((u32)(qp->sq.cur_post) << 8) | in finish_wqe()
2580 qp->sq.wrid[idx] = wr_id; in finish_wqe()
2581 qp->sq.w_list[idx].opcode = mlx5_opcode; in finish_wqe()
2582 qp->sq.wqe_head[idx] = qp->sq.head + nreq; in finish_wqe()
2583 qp->sq.cur_post += DIV_ROUND_UP(size * 16, MLX5_SEND_WQE_BB); in finish_wqe()
2584 qp->sq.w_list[idx].next = qp->sq.cur_post; in finish_wqe()
2600 void *qend = qp->sq.qend; in mlx5_ib_post_send()
2612 spin_lock_irqsave(&qp->sq.lock, flags); in mlx5_ib_post_send()
2624 if (unlikely(num_sge > qp->sq.max_gs)) { in mlx5_ib_post_send()
2667 qp->sq.wr_data[idx] = IB_WR_LOCAL_INV; in mlx5_ib_post_send()
2680 qp->sq.wr_data[idx] = IB_WR_FAST_REG_MR; in mlx5_ib_post_send()
2692 qp->sq.wr_data[idx] = IB_WR_REG_SIG_MR; in mlx5_ib_post_send()
2794 qp->sq.wr_data[idx] = MLX5_IB_WR_UMR; in mlx5_ib_post_send()
2848 qp->sq.head += nreq; in mlx5_ib_post_send()
2855 qp->db.db[MLX5_SND_DBR] = cpu_to_be32(qp->sq.cur_post); in mlx5_ib_post_send()
2885 spin_unlock_irqrestore(&qp->sq.lock, flags); in mlx5_ib_post_send()
3104 qp_attr->cap.max_send_wr = qp->sq.wqe_cnt; in mlx5_ib_query_qp()
3105 qp_attr->cap.max_send_sge = qp->sq.max_gs; in mlx5_ib_query_qp()