Home
last modified time | relevance | path

Searched refs:srq (Results 1 – 25 of 80) sorted by relevance

1234

/freebsd/sys/dev/mthca/
H A Dmthca_srq.c74 static void *get_wqe(struct mthca_srq *srq, int n) in get_wqe() argument
76 if (srq->is_direct) in get_wqe()
77 return srq->queue.direct.buf + (n << srq->wqe_shift); in get_wqe()
79 return srq->queue.page_list[(n << srq->wqe_shift) >> PAGE_SHIFT].buf + in get_wqe()
80 ((n << srq->wqe_shift) & (PAGE_SIZE - 1)); in get_wqe()
99 struct mthca_srq *srq, in mthca_tavor_init_srq_context() argument
108 context->wqe_base_ds = cpu_to_be64(1 << (srq->wqe_shift - 4)); in mthca_tavor_init_srq_context()
110 context->lkey = cpu_to_be32(srq->mr.ibmr.lkey); in mthca_tavor_init_srq_context()
120 struct mthca_srq *srq, in mthca_arbel_init_srq_context() argument
129 logsize = ilog2(srq->max); in mthca_arbel_init_srq_context()
[all …]
/freebsd/sys/dev/mlx4/mlx4_ib/
H A Dmlx4_ib_srq.c42 static void *get_wqe(struct mlx4_ib_srq *srq, int n) in get_wqe() argument
44 return mlx4_buf_offset(&srq->buf, n << srq->msrq.wqe_shift); in get_wqe()
47 static void mlx4_ib_srq_event(struct mlx4_srq *srq, enum mlx4_event type) in mlx4_ib_srq_event() argument
50 struct ib_srq *ibsrq = &to_mibsrq(srq)->ibsrq; in mlx4_ib_srq_event()
54 event.element.srq = ibsrq; in mlx4_ib_srq_event()
64 "on SRQ %06x\n", type, srq->srqn); in mlx4_ib_srq_event()
79 struct mlx4_ib_srq *srq = to_msrq(ib_srq); in mlx4_ib_create_srq() local
94 mutex_init(&srq->mutex); in mlx4_ib_create_srq()
95 spin_lock_init(&srq->lock); in mlx4_ib_create_srq()
96 srq->msrq.max = roundup_pow_of_two(init_attr->attr.max_wr + 1); in mlx4_ib_create_srq()
[all …]
H A Dmlx4_ib_cq.c656 struct mlx4_ib_srq *srq; in mlx4_ib_poll_one() local
732 } else if ((*cur_qp)->ibqp.srq) { in mlx4_ib_poll_one()
733 srq = to_msrq((*cur_qp)->ibqp.srq); in mlx4_ib_poll_one()
735 wc->wr_id = srq->wrid[wqe_ctr]; in mlx4_ib_poll_one()
736 mlx4_ib_free_srq_wqe(srq, wqe_ctr); in mlx4_ib_poll_one()
738 srq = to_mibsrq(msrq); in mlx4_ib_poll_one()
740 wc->wr_id = srq->wrid[wqe_ctr]; in mlx4_ib_poll_one()
741 mlx4_ib_free_srq_wqe(srq, wqe_ctr); in mlx4_ib_poll_one()
913 void __mlx4_ib_cq_clean(struct mlx4_ib_cq *cq, u32 qpn, struct mlx4_ib_srq *srq) in __mlx4_ib_cq_clean() argument
941 if (srq && !(cqe->owner_sr_opcode & MLX4_CQE_IS_SEND_MASK)) in __mlx4_ib_cq_clean()
[all …]
/freebsd/contrib/ofed/libmlx4/
H A Dsrq.c44 static void *get_wqe(struct mlx4_srq *srq, int n) in get_wqe() argument
46 return srq->buf.buf + (n << srq->wqe_shift); in get_wqe()
49 void mlx4_free_srq_wqe(struct mlx4_srq *srq, int ind) in mlx4_free_srq_wqe() argument
53 pthread_spin_lock(&srq->lock); in mlx4_free_srq_wqe()
55 next = get_wqe(srq, srq->tail); in mlx4_free_srq_wqe()
57 srq->tail = ind; in mlx4_free_srq_wqe()
59 pthread_spin_unlock(&srq->lock); in mlx4_free_srq_wqe()
66 struct mlx4_srq *srq = to_msrq(ibsrq); in mlx4_post_srq_recv() local
73 pthread_spin_lock(&srq->lock); in mlx4_post_srq_recv()
76 if (wr->num_sge > srq->max_gs) { in mlx4_post_srq_recv()
[all …]
H A Dverbs.c651 struct mlx4_srq *srq; in mlx4_create_srq() local
658 srq = malloc(sizeof *srq); in mlx4_create_srq()
659 if (!srq) in mlx4_create_srq()
662 if (pthread_spin_init(&srq->lock, PTHREAD_PROCESS_PRIVATE)) in mlx4_create_srq()
665 srq->max = align_queue_size(attr->attr.max_wr + 1); in mlx4_create_srq()
666 srq->max_gs = attr->attr.max_sge; in mlx4_create_srq()
667 srq->counter = 0; in mlx4_create_srq()
668 srq->ext_srq = 0; in mlx4_create_srq()
670 if (mlx4_alloc_srq_buf(pd, &attr->attr, srq)) in mlx4_create_srq()
673 srq->db = mlx4_alloc_db(to_mctx(pd->context), MLX4_DB_TYPE_RQ); in mlx4_create_srq()
[all …]
H A Dcq.c241 struct mlx4_srq *srq; in mlx4_parse_cqe() local
270 srq = mlx4_find_xsrq(&mctx->xsrq_table, in mlx4_parse_cqe()
272 if (!srq) in mlx4_parse_cqe()
285 srq = ((*cur_qp)->verbs_qp.qp.srq) ? to_msrq((*cur_qp)->verbs_qp.qp.srq) : NULL; in mlx4_parse_cqe()
295 } else if (srq) { in mlx4_parse_cqe()
297 *pwr_id = srq->wrid[wqe_index]; in mlx4_parse_cqe()
298 mlx4_free_srq_wqe(srq, wqe_index); in mlx4_parse_cqe()
714 void __mlx4_cq_clean(struct mlx4_cq *cq, uint32_t qpn, struct mlx4_srq *srq) in __mlx4_cq_clean() argument
740 if (srq && srq->ext_srq && in __mlx4_cq_clean()
741 (be32toh(cqe->g_mlpath_rqpn) & MLX4_CQE_QPN_MASK) == srq->verbs_srq.srq_num && in __mlx4_cq_clean()
[all …]
H A Dmlx4.h331 return container_of(container_of(ibsrq, struct verbs_srq, srq), in to_msrq()
397 void __mlx4_cq_clean(struct mlx4_cq *cq, uint32_t qpn, struct mlx4_srq *srq);
398 void mlx4_cq_clean(struct mlx4_cq *cq, uint32_t qpn, struct mlx4_srq *srq);
408 int mlx4_modify_srq(struct ibv_srq *srq,
411 int mlx4_query_srq(struct ibv_srq *srq,
413 int mlx4_destroy_srq(struct ibv_srq *srq);
414 int mlx4_destroy_xrc_srq(struct ibv_srq *srq);
416 struct mlx4_srq *srq);
421 struct mlx4_srq *srq);
423 void mlx4_free_srq_wqe(struct mlx4_srq *srq, int ind);
/freebsd/sys/dev/mlx5/mlx5_ib/
H A Dmlx5_ib_srq.c39 static void *get_wqe(struct mlx5_ib_srq *srq, int n) in get_wqe() argument
41 return mlx5_buf_offset(&srq->buf, n << srq->msrq.wqe_shift); in get_wqe()
44 static void mlx5_ib_srq_event(struct mlx5_core_srq *srq, int type) in mlx5_ib_srq_event() argument
47 struct ib_srq *ibsrq = &to_mibsrq(srq)->ibsrq; in mlx5_ib_srq_event()
51 event.element.srq = ibsrq; in mlx5_ib_srq_event()
61 type, srq->srqn); in mlx5_ib_srq_event()
69 static int create_srq_user(struct ib_pd *pd, struct mlx5_ib_srq *srq, in create_srq_user() argument
106 srq->wq_sig = !!(ucmd.flags & MLX5_SRQ_FLAG_SIGNATURE); in create_srq_user()
108 srq->umem = ib_umem_get(&ucontext->ibucontext, ucmd.buf_addr, buf_size, 0, 0); in create_srq_user()
109 if (IS_ERR(srq->umem)) { in create_srq_user()
[all …]
H A Dmlx5_ib_cq.c169 struct mlx5_ib_srq *srq; in handle_responder() local
176 if (qp->ibqp.srq || qp->ibqp.xrcd) { in handle_responder()
182 srq = to_mibsrq(msrq); in handle_responder()
184 srq = to_msrq(qp->ibqp.srq); in handle_responder()
186 if (srq) { in handle_responder()
188 wc->wr_id = srq->wrid[wqe_ctr]; in handle_responder()
189 mlx5_ib_free_srq_wqe(srq, wqe_ctr); in handle_responder()
607 struct mlx5_ib_srq *srq; in mlx5_poll_one() local
609 if ((*cur_qp)->ibqp.srq) { in mlx5_poll_one()
1034 __mlx5_ib_cq_clean(struct mlx5_ib_cq * cq,u32 rsn,struct mlx5_ib_srq * srq) __mlx5_ib_cq_clean() argument
1085 mlx5_ib_cq_clean(struct mlx5_ib_cq * cq,u32 qpn,struct mlx5_ib_srq * srq) mlx5_ib_cq_clean() argument
[all...]
/freebsd/contrib/ofed/libmlx5/
H A Dsrq.c44 static void *get_wqe(struct mlx5_srq *srq, int n) in get_wqe() argument
46 return srq->buf.buf + (n << srq->wqe_shift); in get_wqe()
49 int mlx5_copy_to_recv_srq(struct mlx5_srq *srq, int idx, void *buf, int size) in mlx5_copy_to_recv_srq() argument
55 int max = 1 << (srq->wqe_shift - 4); in mlx5_copy_to_recv_srq()
57 next = get_wqe(srq, idx); in mlx5_copy_to_recv_srq()
73 void mlx5_free_srq_wqe(struct mlx5_srq *srq, int ind) in mlx5_free_srq_wqe() argument
77 mlx5_spin_lock(&srq->lock); in mlx5_free_srq_wqe()
79 next = get_wqe(srq, srq->tail); in mlx5_free_srq_wqe()
81 srq->tail = ind; in mlx5_free_srq_wqe()
83 mlx5_spin_unlock(&srq->lock); in mlx5_free_srq_wqe()
[all …]
H A Dverbs.c630 struct mlx5_srq *srq; in mlx5_create_srq() local
637 srq = calloc(1, sizeof *srq); in mlx5_create_srq()
638 if (!srq) { in mlx5_create_srq()
642 ibsrq = &srq->vsrq.srq; in mlx5_create_srq()
645 if (mlx5_spinlock_init(&srq->lock)) { in mlx5_create_srq()
670 srq->max = align_queue_size(attr->attr.max_wr + 1); in mlx5_create_srq()
671 srq->max_gs = attr->attr.max_sge; in mlx5_create_srq()
672 srq in mlx5_create_srq()
732 mlx5_modify_srq(struct ibv_srq * srq,struct ibv_srq_attr * attr,int attr_mask) mlx5_modify_srq() argument
741 mlx5_query_srq(struct ibv_srq * srq,struct ibv_srq_attr * attr) mlx5_query_srq() argument
749 mlx5_destroy_srq(struct ibv_srq * srq) mlx5_destroy_srq() argument
1775 mlx5_get_srq_num(struct ibv_srq * srq,uint32_t * srq_num) mlx5_get_srq_num() argument
[all...]
H A Dcq.c144 struct mlx5_resource *cur_rsc, struct mlx5_srq *srq) in handle_responder_lazy() argument
151 if (srq) { in handle_responder_lazy()
153 cq->ibv_cq.wr_id = srq->wrid[wqe_ctr]; in handle_responder_lazy()
154 mlx5_free_srq_wqe(srq, wqe_ctr); in handle_responder_lazy()
156 err = mlx5_copy_to_recv_srq(srq, wqe_ctr, cqe, in handle_responder_lazy()
159 err = mlx5_copy_to_recv_srq(srq, wqe_ctr, cqe - 1, in handle_responder_lazy()
185 struct mlx5_resource *cur_rsc, struct mlx5_srq *srq) in handle_responder() argument
194 if (srq) { in handle_responder()
196 wc->wr_id = srq->wrid[wqe_ctr]; in handle_responder()
197 mlx5_free_srq_wqe(srq, wqe_ctr); in handle_responder()
[all …]
H A Dmlx5.h609 void __mlx5_cq_clean(struct mlx5_cq *cq, uint32_t qpn, struct mlx5_srq *srq);
610 void mlx5_cq_clean(struct mlx5_cq *cq, uint32_t qpn, struct mlx5_srq *srq);
615 int mlx5_modify_srq(struct ibv_srq *srq, struct ibv_srq_attr *attr,
617 int mlx5_query_srq(struct ibv_srq *srq,
619 int mlx5_destroy_srq(struct ibv_srq *srq);
620 int mlx5_alloc_srq_buf(struct ibv_context *context, struct mlx5_srq *srq);
621 void mlx5_free_srq_wqe(struct mlx5_srq *srq, int ind);
652 struct mlx5_srq *srq);
666 int mlx5_copy_to_recv_srq(struct mlx5_srq *srq, int idx, void *buf, int size);
669 int mlx5_get_srq_num(struct ibv_srq *srq, uint32_t *srq_num);
/freebsd/sys/dev/mlx5/mlx5_core/
H A Dmlx5_srq.c40 struct mlx5_core_srq *srq; in mlx5_srq_event() local
44 srq = radix_tree_lookup(&table->tree, srqn); in mlx5_srq_event()
45 if (srq) in mlx5_srq_event()
46 atomic_inc(&srq->refcount); in mlx5_srq_event()
50 if (!srq) { in mlx5_srq_event()
55 srq->event(srq, event_type); in mlx5_srq_event()
57 if (atomic_dec_and_test(&srq->refcount)) in mlx5_srq_event()
58 complete(&srq->free); in mlx5_srq_event()
116 struct mlx5_core_srq *srq; in mlx5_core_get_srq() local
120 srq = radix_tree_lookup(&table->tree, srqn); in mlx5_core_get_srq()
[all …]
/freebsd/sys/dev/mlx4/mlx4_core/
H A Dmlx4_srq.c46 struct mlx4_srq *srq; in mlx4_srq_event() local
49 srq = radix_tree_lookup(&srq_table->tree, srqn & (dev->caps.num_srqs - 1)); in mlx4_srq_event()
51 if (srq) in mlx4_srq_event()
52 atomic_inc(&srq->refcount); in mlx4_srq_event()
58 srq->event(srq, event_type); in mlx4_srq_event()
60 if (atomic_dec_and_test(&srq->refcount)) in mlx4_srq_event()
61 complete(&srq->free); in mlx4_srq_event()
163 struct mlx4_mtt *mtt, u64 db_rec, struct mlx4_srq *srq) in mlx4_srq_alloc() argument
171 err = mlx4_srq_alloc_icm(dev, &srq->srqn); in mlx4_srq_alloc()
176 err = radix_tree_insert(&srq_table->tree, srq->srqn, srq); in mlx4_srq_alloc()
[all …]
/freebsd/contrib/ofed/libibverbs/
H A Dcompat-1_0.c77 struct ibv_srq_1_0 *srq; member
123 struct ibv_srq_1_0 *srq; member
187 int (*modify_srq)(struct ibv_srq *srq,
190 int (*query_srq)(struct ibv_srq *srq,
192 int (*destroy_srq)(struct ibv_srq *srq);
193 int (*post_srq_recv)(struct ibv_srq_1_0 *srq,
268 int __ibv_modify_srq_1_0(struct ibv_srq_1_0 *srq, struct ibv_srq_attr *srq_attr,
270 int __ibv_query_srq_1_0(struct ibv_srq_1_0 *srq, struct ibv_srq_attr *srq_attr);
271 int __ibv_destroy_srq_1_0(struct ibv_srq_1_0 *srq);
367 static int post_srq_recv_wrapper_1_0(struct ibv_srq_1_0 *srq, struct ibv_recv_wr_1_0 *wr, in post_srq_recv_wrapper_1_0() argument
[all …]
H A Dverbs.c85 int __ibv_modify_srq(struct ibv_srq *srq, struct ibv_srq_attr *srq_attr,
87 int __ibv_query_srq(struct ibv_srq *srq, struct ibv_srq_attr *srq_attr);
88 int __ibv_destroy_srq(struct ibv_srq *srq);
544 struct ibv_srq *srq; in __ibv_create_srq() local
549 srq = pd->context->ops.create_srq(pd, srq_init_attr); in __ibv_create_srq()
550 if (!srq) in __ibv_create_srq()
553 srq->context = pd->context; in __ibv_create_srq()
554 srq->srq_context = srq_init_attr->srq_context; in __ibv_create_srq()
555 srq->pd = pd; in __ibv_create_srq()
556 srq->events_completed = 0; in __ibv_create_srq()
[all …]
H A Dcmd.c641 struct ibv_srq *srq, struct ibv_srq_init_attr *attr, in ibv_cmd_create_srq() argument
646 cmd->user_handle = (uintptr_t) srq; in ibv_cmd_create_srq()
657 srq->handle = resp->srq_handle; in ibv_cmd_create_srq()
658 srq->context = pd->context; in ibv_cmd_create_srq()
676 struct verbs_srq *srq, int vsrq_sz, in ibv_cmd_create_srq_ex() argument
692 cmd->user_handle = (uintptr_t) srq; in ibv_cmd_create_srq_ex()
709 ret = pthread_mutex_init(&srq->srq.mutex, NULL); in ibv_cmd_create_srq_ex()
712 ret = pthread_cond_init(&srq->srq.cond, NULL); in ibv_cmd_create_srq_ex()
723 srq->srq.handle = resp->srq_handle; in ibv_cmd_create_srq_ex()
724 srq->srq.context = context; in ibv_cmd_create_srq_ex()
[all …]
H A Ddriver.h78 struct ibv_srq srq; member
211 struct ibv_srq *srq, struct ibv_srq_init_attr *attr,
215 struct verbs_srq *srq, int vsrq_sz,
219 int ibv_cmd_modify_srq(struct ibv_srq *srq,
223 int ibv_cmd_query_srq(struct ibv_srq *srq,
226 int ibv_cmd_destroy_srq(struct ibv_srq *srq);
268 int ibv_cmd_post_srq_recv(struct ibv_srq *srq, struct ibv_recv_wr *wr,
316 static inline int verbs_get_srq_num(struct ibv_srq *srq, uint32_t *srq_num) in verbs_get_srq_num() argument
318 struct verbs_srq *vsrq = container_of(srq, struct verbs_srq, srq); in verbs_get_srq_num()
H A Ddevice.c353 event->element.srq = (void *) (uintptr_t) ev.element; in __ibv_get_async_event()
408 struct ibv_srq *srq = event->element.srq; in __ibv_ack_async_event() local
410 pthread_mutex_lock(&srq->mutex); in __ibv_ack_async_event()
411 ++srq->events_completed; in __ibv_ack_async_event()
412 pthread_cond_signal(&srq->cond); in __ibv_ack_async_event()
413 pthread_mutex_unlock(&srq->mutex); in __ibv_ack_async_event()
H A Dverbs.h376 struct ibv_srq *srq; member
779 struct ibv_srq *srq; member
814 struct ibv_srq *srq; member
1046 struct ibv_srq *srq; member
1435 int (*modify_srq)(struct ibv_srq *srq,
1438 int (*query_srq)(struct ibv_srq *srq,
1440 int (*destroy_srq)(struct ibv_srq *srq);
1441 int (*post_srq_recv)(struct ibv_srq *srq,
1555 int (*get_srq_num)(struct ibv_srq *srq, uint32_t *srq_num);
1986 int ibv_modify_srq(struct ibv_srq *srq,
[all …]
/freebsd/sys/dev/bnxt/bnxt_re/
H A Dqplib_fp.c73 if (!qp->srq) { in __bnxt_qplib_add_flush_qp()
119 if (!qp->srq) { in __bnxt_qplib_del_flush_qp()
388 struct bnxt_qplib_srq *srq; in bnxt_qplib_service_nq() local
394 srq = (struct bnxt_qplib_srq *)q_handle; in bnxt_qplib_service_nq()
395 bnxt_qplib_armen_db(&srq->dbinfo, in bnxt_qplib_service_nq()
613 struct bnxt_qplib_srq *srq) in __qplib_destroy_srq() argument
619 req.srq_cid = cpu_to_le32(srq->id); in __qplib_destroy_srq()
628 struct bnxt_qplib_srq *srq) in bnxt_qplib_destroy_srq() argument
633 rc = __qplib_destroy_srq(rcfw, srq); in bnxt_qplib_destroy_srq()
636 bnxt_qplib_free_hwq(res, &srq->hwq); in bnxt_qplib_destroy_srq()
[all …]
/freebsd/sys/ofed/drivers/infiniband/core/
H A Dib_verbs.c706 struct ib_srq *srq; in ib_create_srq() local
712 srq = rdma_zalloc_drv_obj(pd->device, ib_srq); in ib_create_srq()
713 if (!srq) in ib_create_srq()
716 srq->device = pd->device; in ib_create_srq()
717 srq->pd = pd; in ib_create_srq()
718 srq->event_handler = srq_init_attr->event_handler; in ib_create_srq()
719 srq->srq_context = srq_init_attr->srq_context; in ib_create_srq()
720 srq->srq_type = srq_init_attr->srq_type; in ib_create_srq()
722 if (ib_srq_has_cq(srq->srq_type)) { in ib_create_srq()
723 srq->ext.cq = srq_init_attr->ext.cq; in ib_create_srq()
[all …]
/freebsd/sys/dev/qlnx/qlnxr/
H A Dqlnxr_verbs.c77 struct qlnxr_srq *srq,
82 qlnxr_alloc_srq_kernel_params(struct qlnxr_srq *srq,
88 struct qlnxr_srq *srq,
92 qlnxr_free_srq_user_params(struct qlnxr_srq *srq);
95 qlnxr_free_srq_kernel_params(struct qlnxr_srq *srq);
174 struct qlnxr_srq *srq = get_qlnxr_srq(ibsrq); in qlnxr_create_srq() local
184 srq->dev = dev; in qlnxr_create_srq()
185 hw_srq = &srq->hw_srq; in qlnxr_create_srq()
186 spin_lock_init(&srq->lock); in qlnxr_create_srq()
201 ret = qlnxr_init_srq_user_params(&ctx->ibucontext, srq, &ureq, 0, 0); in qlnxr_create_srq()
[all …]
/freebsd/sys/ofed/include/uapi/rdma/
H A Dib_user_cm.h156 __u8 srq; member
173 __u8 srq; member
253 __u8 srq; member
269 __u8 srq; member

1234