Lines Matching refs:sq
66 return qp->buf.buf + qp->sq.offset + (n << qp->sq.wqe_shift);
86 qp->sq.head = 0;
87 qp->sq.tail = 0;
97 for (i = 0; i < qp->sq.wqe_cnt; ++i) {
100 ctrl->fence_size = 1 << (qp->sq.wqe_shift - 4);
227 pthread_spin_lock(&qp->sq.lock);
231 ind = qp->sq.head;
234 if (wq_overflow(&qp->sq, nreq, to_mcq(ibqp->send_cq))) {
240 if (wr->num_sge > qp->sq.max_gs) {
252 ctrl = wqe = get_send_wqe(qp, ind & (qp->sq.wqe_cnt - 1));
253 qp->sq.wrid[ind & (qp->sq.wqe_cnt - 1)] = wr->wr_id;
454 (ind & qp->sq.wqe_cnt ? htobe32(1 << 31) : 0);
463 (qp->sq.wqe_cnt - 1));
472 ctrl->owner_opcode |= htobe32((qp->sq.head & 0xffff) << 8);
475 ++qp->sq.head;
491 qp->sq.head += nreq;
505 (qp->sq.wqe_cnt - 1));
507 pthread_spin_unlock(&qp->sq.lock);
648 for (qp->sq.wqe_shift = 6; 1 << qp->sq.wqe_shift < size;
649 qp->sq.wqe_shift++)
658 if (qp->sq.wqe_cnt) {
659 qp->sq.wrid = malloc(qp->sq.wqe_cnt * sizeof (uint64_t));
660 if (!qp->sq.wrid)
667 free(qp->sq.wrid);
678 (qp->sq.wqe_cnt << qp->sq.wqe_shift);
679 if (qp->rq.wqe_shift > qp->sq.wqe_shift) {
681 qp->sq.offset = qp->rq.wqe_cnt << qp->rq.wqe_shift;
683 qp->rq.offset = qp->sq.wqe_cnt << qp->sq.wqe_shift;
684 qp->sq.offset = 0;
691 free(qp->sq.wrid);
709 wqe_size = (1 << qp->sq.wqe_shift) - sizeof (struct mlx4_wqe_ctrl_seg);
725 qp->sq.max_gs = wqe_size / sizeof (struct mlx4_wqe_data_seg);
726 cap->max_send_sge = qp->sq.max_gs;
727 qp->sq.max_post = qp->sq.wqe_cnt - qp->sq_spare_wqes;
728 cap->max_send_wr = qp->sq.max_post;