Lines Matching refs:sq
195 return get_wqe(qp, qp->sq.offset + (n << qp->sq.wqe_shift)); in get_send_wqe()
218 s = roundup(size, 1U << qp->sq.wqe_shift); in stamp_send_wqe()
220 ind = (i >> qp->sq.wqe_shift) + n; in stamp_send_wqe()
221 stamp = ind & qp->sq.wqe_cnt ? cpu_to_be32(0x7fffffff) : in stamp_send_wqe()
223 buf = get_send_wqe(qp, ind & (qp->sq.wqe_cnt - 1)); in stamp_send_wqe()
224 wqe = buf + (i & ((1 << qp->sq.wqe_shift) - 1)); in stamp_send_wqe()
228 ctrl = buf = get_send_wqe(qp, n & (qp->sq.wqe_cnt - 1)); in stamp_send_wqe()
244 ctrl = wqe = get_send_wqe(qp, n & (qp->sq.wqe_cnt - 1)); in post_nop_wqe()
269 (n & qp->sq.wqe_cnt ? cpu_to_be32(1 << 31) : 0); in post_nop_wqe()
277 unsigned s = qp->sq.wqe_cnt - (ind & (qp->sq.wqe_cnt - 1)); in pad_wraparound()
279 post_nop_wqe(qp, ind, s << qp->sq.wqe_shift); in pad_wraparound()
479 qp->sq.wqe_shift = ilog2(64); in set_kernel_sq_size()
481 qp->sq.wqe_shift = ilog2(roundup_pow_of_two(s)); in set_kernel_sq_size()
484 qp->sq_max_wqes_per_wr = DIV_ROUND_UP(s, 1U << qp->sq.wqe_shift); in set_kernel_sq_size()
490 qp->sq_spare_wqes = (2048 >> qp->sq.wqe_shift) + qp->sq_max_wqes_per_wr; in set_kernel_sq_size()
491 qp->sq.wqe_cnt = roundup_pow_of_two(cap->max_send_wr * in set_kernel_sq_size()
495 if (qp->sq.wqe_cnt <= dev->dev->caps.max_wqes) in set_kernel_sq_size()
501 ++qp->sq.wqe_shift; in set_kernel_sq_size()
504 qp->sq.max_gs = (min(dev->dev->caps.max_sq_desc_sz, in set_kernel_sq_size()
505 (qp->sq_max_wqes_per_wr << qp->sq.wqe_shift)) - in set_kernel_sq_size()
510 (qp->sq.wqe_cnt << qp->sq.wqe_shift); in set_kernel_sq_size()
511 if (qp->rq.wqe_shift > qp->sq.wqe_shift) { in set_kernel_sq_size()
513 qp->sq.offset = qp->rq.wqe_cnt << qp->rq.wqe_shift; in set_kernel_sq_size()
515 qp->rq.offset = qp->sq.wqe_cnt << qp->sq.wqe_shift; in set_kernel_sq_size()
516 qp->sq.offset = 0; in set_kernel_sq_size()
519 cap->max_send_wr = qp->sq.max_post = in set_kernel_sq_size()
520 (qp->sq.wqe_cnt - qp->sq_spare_wqes) / qp->sq_max_wqes_per_wr; in set_kernel_sq_size()
521 cap->max_send_sge = min(qp->sq.max_gs, in set_kernel_sq_size()
541 qp->sq.wqe_cnt = 1 << ucmd->log_sq_bb_count; in set_user_sq_size()
542 qp->sq.wqe_shift = ucmd->log_sq_stride; in set_user_sq_size()
545 (qp->sq.wqe_cnt << qp->sq.wqe_shift); in set_user_sq_size()
697 spin_lock_init(&qp->sq.lock); in create_qp_common()
789 qp->sq.wrid = kmalloc(qp->sq.wqe_cnt * sizeof (u64), gfp); in create_qp_common()
791 if (!qp->sq.wrid || !qp->rq.wrid) { in create_qp_common()
877 kfree(qp->sq.wrid); in create_qp_common()
1053 kfree(qp->sq.wrid); in destroy_qp_common()
1514 if (qp->sq.wqe_cnt) in __mlx4_ib_modify_qp()
1515 context->sq_size_stride = ilog2(qp->sq.wqe_cnt) << 3; in __mlx4_ib_modify_qp()
1516 context->sq_size_stride |= qp->sq.wqe_shift - 4; in __mlx4_ib_modify_qp()
1753 for (i = 0; i < qp->sq.wqe_cnt; ++i) { in __mlx4_ib_modify_qp()
1757 ctrl->fence_size = 1 << (qp->sq.wqe_shift - 4); in __mlx4_ib_modify_qp()
1759 stamp_send_wqe(qp, i, 1 << qp->sq.wqe_shift); in __mlx4_ib_modify_qp()
1813 qp->sq.head = 0; in __mlx4_ib_modify_qp()
1814 qp->sq.tail = 0; in __mlx4_ib_modify_qp()
2607 wr->num_sge > qp->sq.max_gs - (halign >> 4))) in build_lso_seg()
2660 spin_lock_irqsave(&qp->sq.lock, flags); in mlx4_ib_post_send()
2674 if (mlx4_wq_overflow(&qp->sq, nreq, qp->ibqp.send_cq)) { in mlx4_ib_post_send()
2680 if (unlikely(wr->num_sge > qp->sq.max_gs)) { in mlx4_ib_post_send()
2686 ctrl = wqe = get_send_wqe(qp, ind & (qp->sq.wqe_cnt - 1)); in mlx4_ib_post_send()
2687 qp->sq.wrid[(qp->sq.head + nreq) & (qp->sq.wqe_cnt - 1)] = wr->wr_id; in mlx4_ib_post_send()
2903 (ind & qp->sq.wqe_cnt ? cpu_to_be32(1 << 31) : 0) | blh; in mlx4_ib_post_send()
2906 ind += DIV_ROUND_UP(size * 16, 1U << qp->sq.wqe_shift); in mlx4_ib_post_send()
2925 qp->sq.head += nreq; in mlx4_ib_post_send()
2948 spin_unlock_irqrestore(&qp->sq.lock, flags); in mlx4_ib_post_send()
3184 qp_attr->cap.max_send_wr = qp->sq.wqe_cnt; in mlx4_ib_query_qp()
3185 qp_attr->cap.max_send_sge = qp->sq.max_gs; in mlx4_ib_query_qp()